我有一个简单的名称表,有些以字母开头,有些以数字开头。我试图过滤掉以数字开头的名字,只选择字母表中以字母开头的名字。
以下是我的一些尝试,但未能产生预期的结果:
SELECT name
from subjects
WHERE name LIKE ('A%') AND
WHERE name LIKE ('B%') AND
WHERE name LIKE ('C%')...;
SELECT name
from subjects
WHERE name LIKE ('A%', 'B%', 'C%', ...);
SELECT name
from subjects
WHERE name LIKE ('A%') AND ('B%') AND ('C%') ...;
提前感谢您的帮助。我非常感激。在我学习用PHP和MySQL编程的过程中,堆栈溢出多次成为我的救星。Lori
一个更简单的解决方案是使用regexp运算符,而不是传递多个like
s。
尝试:
SELECT name from subjects WHERE name REGEXP '^[a-zA-Z]';
这将选择名称以小写字母和大写字母开头的所有记录。
您遇到的问题是包含了多个where。只需删除它们
SELECT name
from subjects
WHERE name LIKE ('A%') AND
name LIKE ('B%') AND
name LIKE ('C%')...;
尝试Regexp:
SELECT name
FROM subjects
WHERE name
REGEXP '[A-Za-z]'