2015-01-07 5 views
1

У меня есть стол, который называется столбец, в котором есть столбец с названием title. Я хотел выбрать все сообщения, в которых есть только 1 слово. Например, «кошка», «собака». Есть сообщения, которые имеют более одного, например, «кошка и собака не хороши», это я не хочу выбирать. Только сообщение только с одним словом. Как я могу сделать это с помощью mysql?выберите записи, содержащие одно слово

+4

ничего с одним словом не имеет места, не thhat помощь? – Jasen

ответ

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

Выбор строк, где заголовки не имеют пробелов.

EDIT:

Если одно слово с пробелом в конце концов, как cat, тогда?

После этого вы ударяете своих пользователей туннелем для создания глупых входов, а также ваших программистов для того, чтобы не обрезать входы.

Просто шучу. Если это возможно, это должно работать:

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

Одно небольшое сомнение. Если одно слово с пробелом в конце, например '' cat '', то? – Wanderer

+1

a +1 для прихлопывания пользователей .. –

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 '% %'; 

ИЛИ

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

Fiddle Demo 2

+1

Да, я полагаю, что это также работает: P. Однако для «крысы» это не удастся. Почему бы не просто «TRIM (название)»? – Amadan

+0

Мы можем использовать простой 'TRIM()'. спасибо – Wanderer

Смежные вопросы