Mam problem z ze złożonym zapytaniem w którym chcę pobrać nazwy kolumn z bazy information_schema.
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.
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET NAMES utf8 */; /*!50503 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; CREATE TABLE IF NOT EXISTS `p` ( `id` int(11) DEFAULT NULL, `name` varchar(20) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; DELETE FROM `p`; /*!40000 ALTER TABLE `p` DISABLE KEYS */; INSERT INTO `p` (`id`, `name`) VALUES (1, 'p1'), (2, 'p2'), (3, 'p3'), (4, 'p4'), (5, 'p5'); /*!40000 ALTER TABLE `p` ENABLE KEYS */; CREATE TABLE IF NOT EXISTS `t` ( `id` int(11) NOT NULL, `p2` varchar(20) DEFAULT NULL, `p3` varchar(20) DEFAULT NULL, `p5` varchar(20) DEFAULT NULL, `p1` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DELETE FROM `t`; /*!40000 ALTER TABLE `t` DISABLE KEYS */; /*!40000 ALTER TABLE `t` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!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ć
SET optimizer_switch='semijoin=off';