Когда вы пытались добавить 'where' с правилом LEFT(column, 3) = '17[_]'
, оно было обречено на провал.Оператор '=' выполняет точное сравнение: обе стороны должны быть равны.То есть он будет искать строки, чьи первые 3 символа (слева, 3) равны 17[_]
, то есть 5 символов, один, семь, скобка, подчеркивание, скобка.Текст из 3 символов никогда не будет точно соответствовать 5 символам.
Вы должны были написать просто:
WHERE LEFT(column, 3) = '17_'
Я думаю, у вас есть идея добавить скобку из чтенияо как шаблоны.Оператор LIKE позволяет искать строки, содержащиеся в начале / конце / середине данных.
WHERE column LIKE 'mom%' - starts with mom
WHERE column LIKE '%dad' - ends with dad
и т. Д.LIKE поддерживает «%», означающее «и затем текст любой длины», а также «_», означающее «и только один символ».Это создает проблему: когда вы хотите сказать «начинается с _mom», вы не можете написать
WHERE column LIKE '_mom%'
, поскольку оно также будет соответствовать 9mom, Bmom и т. Д., Поскольку _
означает «любойперсонаж'.Вот почему в таких случаях, только в LIKE, вы должны написать подчеркивание в скобках:
WHERE column LIKE '[_]mom%' - starts with _mom
Зная это, очевидно, что вы также можете построить свои «начинается с 17_» с LIKE:
SELECT column1, column2, ..., columnN
FROM sometable
WHERE column LIKE '17[_]%'