Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie złożone mi nie działa
Forum PHP.pl > Forum > Bazy danych > MySQL
m72
Wpis się wywalił całkowicie po edycji więc piszę jeszcze raz.
Mam problem z ze złożonym zapytaniem w którym chcę pobrać nazwy kolumn z bazy information_schema.

  1. SELECT * FROM test.p WHERE name IN ( SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME = 't' AND COLUMN_NAME LIKE 'p%')


To zapytanie działa na moim lokalnym "serwerze" a na hostingu w az.pl już nie, wynik jest pusty. W czym może być problem ?
Może to kwestia jakiś ustawień zmiennych serwera ?

Oto baza.

  1. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  2. /*!40101 SET NAMES utf8 */;
  3. /*!50503 SET NAMES utf8mb4 */;
  4. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  5. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  6. /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  7.  
  8. CREATE TABLE IF NOT EXISTS `p` (
  9. `id` int(11) DEFAULT NULL,
  10. `name` varchar(20) CHARACTER SET utf8 DEFAULT NULL
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  12.  
  13. DELETE FROM `p`;
  14. /*!40000 ALTER TABLE `p` DISABLE KEYS */;
  15. INSERT INTO `p` (`id`, `name`) VALUES
  16. (1, 'p1'),
  17. (2, 'p2'),
  18. (3, 'p3'),
  19. (4, 'p4'),
  20. (5, 'p5');
  21. /*!40000 ALTER TABLE `p` ENABLE KEYS */;
  22.  
  23. CREATE TABLE IF NOT EXISTS `t` (
  24. `id` int(11) NOT NULL,
  25. `p2` varchar(20) DEFAULT NULL,
  26. `p3` varchar(20) DEFAULT NULL,
  27. `p5` varchar(20) DEFAULT NULL,
  28. `p1` varchar(20) DEFAULT NULL,
  29. PRIMARY KEY (`id`)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  31.  
  32. DELETE FROM `t`;
  33. /*!40000 ALTER TABLE `t` DISABLE KEYS */;
  34. /*!40000 ALTER TABLE `t` ENABLE KEYS */;
  35.  
  36. /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
  37. /*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
  38. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  39. /*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;


Ok na innym forum ktoś podpowiedział więc daję tu odpowiedź, może komuś się przyda.
Zapytanie nie działało bo trzeba dodać
  1. SET optimizer_switch='semijoin=off';
nospor
Moge spytac po co takie cudowanie? Wyglada to tak jakbys uzywal nazw kolumn z drugiej tabeli tylko po to by okreslic sobie jakies sortowanie i nie chce mi sie wierzyc ze masz taka strukture tylko po to wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.