2015-01-07 17 views
1

我有一个称为帖子的表,其中有一个名为title的列。我想选择只有1个字作为标题的所有帖子。例如'猫','狗'。有不止一个帖子,比如'猫狗不好',这个我不想选择。只能发布一个字的标题。我如何使用mysql做到这一点?选择包含一个单词的条目

+4

什么用一个字没有空格,不thhat帮助? – Jasen

回答

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

选择标题没有空格的行。

编辑:

如果一个字有像cat在后面加上一个空格,然后呢?

然后你用一个tunafish来制作愚蠢的输入,也是你的程序员不修剪输入的用户。

只是在开玩笑。如果这是可能性,这应该工作:

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

一个小小的疑问,如果一个单词带有空格到底像'猫''那么? – Wanderer

+1

a用于抨击用户。 –

0

如何使用正则表达式进行匹配。我假设你用一个词来表示它不应该有空格。你可以用下面的表达式匹配这个:

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

这应该赶在它有一个空间的任何标题,并排除那些从结果。

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

+1

是的,我想这也是有效的:P。虽然会出现''老鼠''失败。为什么不简单'TRIM(标题)'? – Amadan

+0

我们可以使用简单的'TRIM()'。谢谢 – Wanderer

相关问题