Поиск данных, заканчивающихся на ___ в SQL? - PullRequest
0 голосов
/ 15 февраля 2020

Попытка получить эту информацию из базы данных: количество почтовых индексов, где название города оканчивается на «боро» или «город» и имеет среднюю стоимость дома не более $ 250 000.

Вот что Я положил:

select count(*) 
from zip_codes 
where city like ’%boro’ and city like ‘%town’ and average_house_value <= 250000;

и продолжаю получать это сообщение: ОШИБКА 1064 (42000): у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей MySQL версии сервера, для правильного синтаксиса для использования рядом с "% boro" ИЛИ городом, например, "% town") и average_house_value <= 250000 'в строке 1 </p>

help?

Ответы [ 2 ]

1 голос
/ 15 февраля 2020

where city like ’%boro’ and city like ‘%town’ and average_house_value <= 250000

Проблемы с вашим запросом:

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

  2. Вы хотите города, оканчивающиеся на 'boro' или 'town', но вы сформулировали запрос который ищет города, которые заканчиваются обоими: это гарантированно не вернет ни одной строки, так как никакое значение не может заканчиваться сразу обеими строками

Рассмотрим:

select count(*) 
from zip_codes
where (city like '%boro' or city like '%tow') and average_house_value <= 250000
0 голосов
/ 16 февраля 2020

Я бы предложил для этого регулярные выражения:

where city regexp '(boro|town)$' and
      average_house_value <= 250000;
...