Lenistwo to nadinterpretacja, poprostu przyjąłem, że skoro problem nie ma związku z danymi a jedynie z tym co się wpisze do regexpa, to zapytanie można wykonać na dowolnej tabeli (jednej, bo złączenie tez nie wpływa na błąd). Przyjąłem po cichu (może zbyt pochopnie), że każdy ma dostęp do jakiejś tabeli wypełnionej tekstami po polsku. Oto dump z tabeli
--
-- Struktura tabeli dla `article`
--
CREATE TABLE `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_structure` int(11) NOT NULL,
`id_gallery` int(11) NOT NULL,
`id_lang` varchar(4) NOT NULL DEFAULT 'pl',
`title` varchar(255) DEFAULT NULL,
`lead` text,
`lead_head_lines` text NOT NULL,
`content` text,
`photo` varchar(255) DEFAULT NULL,
`source` varchar(255) DEFAULT NULL,
`author` varchar(255) DEFAULT NULL,
`date_publication` date DEFAULT NULL,
`date_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`type` enum('news','article','advice','new') DEFAULT NULL,
`main_pos` tinyint(1) NOT NULL DEFAULT '0',
`status` enum('edit','pending','sent') NOT NULL DEFAULT 'edit',
`active` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id_lang` (`id_lang`),
KEY `id_gallery` (`id_gallery`),
KEY `active` (`active`),
KEY `date_time` (`date_time`),
KEY `type` (`type`),
KEY `main_pos` (`main_pos`)
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
INSERT INTO `article` (`id`, `id_structure`, `id_gallery`, `id_lang`, `title`, `lead`, `lead_head_lines`, `content`, `photo`, `source`, `author`, `date_publication`, `date_time`, `type`, `main_pos`, `status`, `active`) VALUES (2, 56, 0, 'pl', 'Łazienka z problemem', 'Urządzanie małej łazienki przypomina układanie puzzli - trzeba idealnie dopasować wszystkie elementy. Dlatego najpierw warto zadbać o dobry projekt, a później kupować wyposażenie.', 'Urządzanie małej łazienki przypomina układanie puzzli - trzeba idealnie dopasować wszystkie elementy. Dlatego najpierw warto zadbać', '<p align="justify"><a href="pliki/test/test_nhlphoto.jpg"><img hspace="5" src="pliki/artykuly/lazienka_problem_d.jpg" align="right" vspace="5" border="0" /></a>Szukamy miejsca na niezbędne sprzęty - komentuje arch. Katarzyna Jekiełek. Urządzanie małej łazienki przypomina układanie puzzli - trzeba idealnie dopasować wszystkie elementy. Dlatego najpierw warto zadbać o dobry projekt, a później kupować wyposażenie. Jeśli standardowe urządzenia się nie mieszczą, zastąpmy je mniejszymi (tzw. kompaktowymi) albo narożnymi, które zajmą miejsca zwykle niewykorzystane. Dobrym pomysłem jest też zrezygnowanie z wanny na korzyść kabiny prysznicowej - wtedy w łazience może się też zmieścić bidet. Wykańczając wnętrze, użyjmy jasnych kolorów i dużych luster, które optycznie je powiększą. Aby wygodnie korzystać z urządzeń w łazience, należy przed każdym z nich pozostawić określoną wolną przestrzeń: * przed umywalką 70 x 70 cm * przed sedesem 80 x 80 cm * przed bidetem 100 x 70 cm * przed prysznicem 80 x 90 cm * przed wanną 100 x 100 cm.</p><p align="justify"><strong>Wnętrze 1 - projekt Maciej Twaróg.</strong> </p><p align="justify">Łazienka nie dość, że jest mała (ok. 4 m kw.), to jeszcze ma dwoje drzwi - jedne do przedpokoju, drugie, suwane - do sypialni gospodarzy. Ograniczają one możliwość wykorzystania całej powierzchni ścian, w związku z czym w pomieszczeniu nie zmieścił się bidet. Przy jednej z dłuższych ścian zamontowano wygodną wannę. Na prostopadłej do niej, między drzwiami, znalazło się miejsce na kompaktowy podwieszany sedes. Kolejną ścianę zajmuje umywalka, obok której zmieściła się również wąska, ale dość głęboka szafka zbudowana z płyt gipsowo-kartonowych.</p><p align="justify"><strong>Wnętrze 2 - projekt: Joanna Otto.</strong> </p><p align="justify">Mikroskopijne pomieszczenie (niecałe 3 m kw.) pierwotnie było przeznaczone na toaletę. Właściciele postanowili jednak urządzić tu drugą łazienkę, powiększając ją o część znajdującej się obok garderoby. W uzyskanej tym sposobem wnęce powstała wygodna kabina prysznicowa zamykana szklanymi drzwiami. Przy niej z jednej strony usytuowano kompaktowy sedes, natomiast z drugiej - sporą umywalkę zamontowaną na stelażu z półką. Zostało też nieco miejsca na szafkę. Jest płytka, dzięki czemu nie przeszkadza.</p><p align="justify">Tekst: Elżbieta Błasikiewicz Stylizacja: Dorota Karpińska, Anna Kępińska <br />Zdjęcie: Sławomir Frąckowiak<br />Źródło: CZTERY KĄTY </p>', 'artykuly/lazienka_problem_m.jpg', NULL, NULL, NULL, '2006-10-25 14:31:47', 'article', 3, 'edit', 1);
Uproszczone zapytanie sprawiające problem:
SELECT
*
FROM article a
WHERE a.active = 1 AND LCASE(CONCAT_WS('', date_time, ' ', title, ' ', lead, ' ', content, ' ', author, ' ', source))
REGEXP CONVERT(_utf8 'łazienka' USING latin2) COLLATE latin2_general_ci
Przypomnę że SELECT działa bez problemu z phpMyAdmina, natomiast wywala sie ze wspomnianym błędem przy użyciu wewnątrz skryptu PHP.
Pozdrawiam
PS Zastanawiam się co PMA takiego robi, że nie omija problem.