选择包含一个单词的条目

时间:2015-01-07 05:08:07

标签: mysql sql

我有一个名为post的表,其中有一个名为title的列。我想选择所有只有1个单词作为标题的帖子。所以例如'cat','dog'。有些帖子有多个,比如“猫和狗都不好”,这个我不想选择。仅发布一个单词标题。我怎么能用mysql这样做?

3 个答案:

答案 0 :(得分:7)

SELECT * FROM post WHERE title NOT LIKE '% %'

选择标题没有空格的行。

修改

  

如果一个单词最后有一个空格,如cat,那么?

然后你用一个用于制作愚蠢输入的tunafish用户,以及你的程序员没有修改输入。

开玩笑吧。如果有可能,这应该有效:

SELECT * FROM post WHERE title RLIKE '^[[=space=]]*[^[=space=]]+[[=space=]]*$'

答案 1 :(得分:1)

如果一个单词带有空格,最后就像“猫”一样。

<强>查询

CREATE TABLE tbl(title VARCHAR(250));

INSERT INTO tbl VALUES('cat ');
INSERT INTO tbl VALUES('dog');
INSERT INTO tbl VALUES('cat and dog');

SELECT * FROM tbl WHERE TRIM(TRAILING ' ' FROM title) NOT LIKE '% %';

<强> Fiddle Demo 1


如果开始和结束都有空格。然后,

<强>查询

SELECT * FROM tbl WHERE TRIM(BOTH ' ' FROM title) NOT LIKE '% %';

OR

SELECT * FROM tbl WHERE TRIM(title) NOT LIKE '% %';

<强> Fiddle Demo 2

答案 2 :(得分:0)

如何使用正则表达式进行匹配。我假设用一个词你的意思是它不应该有空格。您可以将其与以下表达式匹配:

SELECT *
FROM myTable
WHERE Title NOT REGEXPR '.* .*'

这应该捕获任何有空格的标题,并从结果中排除。