Символ пробела SQL LIKE

допустим, у меня есть строка, в которой слова разделены 1 или более пробелами, и я хочу использовать эту строку и условие SQL LIKE. Как я могу сделать свой SQL и сказать, что он соответствует 1 или более символам пробела в моей строке? Есть ли подстановочный шаблон SQL, который я могу использовать для этого?

Дай мне знать

Если вы просто хотите получить что угодно, по крайней мере, один пробел / пробел, вы можете сделать что-то вроде следующего WHERE myField LIKE '% %'

Если ваш диалект позволяет это сделать, используйте SIMILAR TO, что позволяет использовать более гибкое сопоставление, в том числе нормальные кванторы регулярного выражения '?', '*' И '+', с группировкой, обозначенной '()'

 where entry SIMILAR TO 'hello +there' 

будет соответствовать 'hello there' с любым количеством пробелов между двумя словами.

Думаю, в MySQL это

 where entry RLIKE 'hello +there' 

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

Я просто заменю символы пробелов на «%» . Предположим, я хочу сделать запрос LIKE в строке, подобной этой «Я хочу запросить эту строку с помощью LIKE»

 @search_string = 'I want to query this string with a LIKE' @search_string = ("%"+@search_string+"%").tr(" ", "%") @my_query = MyTable.find(:all, :conditions => ['my_column LIKE ?', @search_string]) 

сначала я добавляю '%' к началу и концу строки с

( "%" + @ SEARCH_STRING + "%")

а затем замените остальные оставшиеся символы пробела на «%», как показано ниже.

.tr ("", "%")

http://www.techonthenet.com/sql/like.php

Шаблоны, которые вы можете выбрать:

% позволяет вам сопоставлять любую строку любой длины (включая нулевую длину)

_ позволяет вам сопоставлять один символ

Другой способ совпадения для одного или более пространства – использовать [] . Это делается так.

 LIKE '%[ ]%' 

Это будет соответствовать одному или нескольким пробелам.

Я знаю, что это поздно, но я никогда не нашел для этого решения по отношению к вопросу LIKE .

Невозможно делать то, что вы хотите в SQL LIKE . Вам нужно будет использовать REGEXP и [[:space:]] внутри вашего выражения.

Итак, чтобы найти одно или несколько пробелов между двумя словами ..

 WHERE col REGEXP 'firstword[[:space:]]+secondword'