gpt4 book ai didi

mysql - 即使所有内容都应该匹配,SQL Like 或 REGEXP 也会过滤结果

转载 作者:行者123 更新时间:2023-11-29 09:10:48 25 4
gpt4 key购买 nike

这就是我所拥有的

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 行。那么……是什么让这些被移除的条件如此特别呢?这些列都是长文本类型(因为 cms 就是这样做的)并且具有完全相同的属性。

顺便说一句,我在使用 LIKE 而不是 REGEXP 时注意到了相同的行为。

最佳答案

由于您有 LEFT JOIN,您还会得到 product.field_sockel_valueproduct.field_licht_farbe_valueNULL 的行>。这些行在 WHERE 子句中被过滤

关于mysql - 即使所有内容都应该匹配,SQL Like 或 REGEXP 也会过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com