Я хочу получить все строки, в которых есть определенный столбец только с двумя словами. Я пробовал это, но не получилось:
SELECT DISTINCT sentence FROM vocab WHERE p='adj' AND sentence REGEXP '^[a-zA-Z]+\s[a-zA-Z]+$'
Похоже, это не работает. Слова могут иметь! или же ? в нем, поэтому я не думаю, что [a-zA-Z]
подходит в любом случае.
РЕДАКТИРОВАТЬ: я должен немного перефразировать его, он должен соответствовать любой «группе» символов. Имея в виду
xczc zczxc ~
1233 iojsd
´ + a s ~ º
Могу я использовать что-нибудь вроде (. *)?
2 ответа
MySQL не поддерживает \s
, поэтому вы можете используйте вместо него [[:space:]]
, вы можете попробовать следующее:
SELECT DISTINCT sentence
FROM vocab
WHERE p='adj'
AND sentence RLIKE '^[[:punct:][:alnum:]]+[[:space:]][[:punct:][:alnum:]]+$'
Он будет искать строки, в которых предложение состоит из двух слов, которые могут содержать буквы, ?
или !
Не очень красиво, но это должно сработать
'^[a-zA-Z?!]+[[:space:]][a-zA-Z?!]+$'
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными. В вопросе всегда указывайте точную версию сервера. Версии 5.x сильно отличаются по своим возможностям от версий 8+.
^[a-zA-Z]+[[:space:]][a-zA-Z]+$