MySQL SELECT值超过三个单词

时间:2014-09-10 13:07:50

标签: mysql sql select where-clause sql-like

我目前有以下代码

select *
FROM list
WHERE name LIKE '___'
ORDER BY name;

我试图让它只显示三个或更多单词的名字。 它只显示三个字符的名称 我似乎无法找到正确的语法。

感谢任何帮助 三江源

3 个答案:

答案 0 :(得分:3)

如果您认为没有双重空格,您可以这样做:

WHERE name like '% % %'

获取三个或更多单词的名称。

如果您可以有双倍空格(或其他标点符号),那么您可能需要正则表达式。类似的东西:

WHERE name REGEXP '^[^ ]+[ ]+[^ ]+.*$'

答案 1 :(得分:0)

我确实相信你所追求的是

SELECT *
FROM list
WHERE name LIKE '% % %'
ORDER BY name;

答案 2 :(得分:0)

您可以计算单词数量,然后选择等于或大于3个单词的单词。

    SELECT * FROM list
    HAVING LENGTH(name) - LENGTH(REPLACE(name, ' ', ''))+1 >= 3
    ORDER BY name

DEMO HERE

*即使你有多个空格也不会影响这里检查this