это то, что у меня есть
SELECT node.nid AS nid, node.type AS node_type, product.*
FROM ml_node node
LEFT JOIN ml_content_type_product product
ON node.vid = product.vid
WHERE (node.type in('product'))
AND product.field_sockel_value REGEXP '.*'
AND product.field_artikel_value REGEXP '.*'
AND product.field_leistung_value REGEXP '.*'
AND product.field_licht_farbe_value REGEXP '.*'
AND product.field_rubrik_value REGEXP '.*'
AND product.field_artikelgruppe_value REGEXP '.*'
ORDER BY product.field_artikel_value
Имея эти условия where, я бы предположил, что это дает те же результаты, что и:
SELECT node.nid AS nid, node.type AS node_type, product.*
FROM ml_node node
LEFT JOIN ml_content_type_product product
ON node.vid = product.vid
WHERE (node.type in('product'))
ORDER BY product.field_artikel_value
Но это не так. Первый возвращает 494 строки, а последний - 717. Таким образом, отсутствует ряд строк. Когда я использую этот запрос
SELECT node.nid AS nid, node.type AS node_type, product.*
FROM ml_node node
LEFT JOIN ml_content_type_product product
ON node.vid = product.vid
WHERE (node.type in('product'))
AND product.field_artikel_value REGEXP '.*'
AND product.field_leistung_value REGEXP '.*'
AND product.field_rubrik_value REGEXP '.*'
AND product.field_artikelgruppe_value REGEXP '.*'
ORDER BY product.field_artikel_value
Я тоже получаю 717 строк. Итак ... что может быть такого, что делает эти удаленные условия такими особенными? Все столбцы имеют тип longtext (потому что это делает cms) и имеют одинаковые атрибуты.
Кстати Я заметил то же самое поведение при использовании LIKE вместо REGEXP.