MySQL使用带有多个LIKE的WHERE子句

时间:2013-08-31 17:30:06

标签: php mysql sql

我有一个简单的名字表,一些以字母开头,一些以数字开头。我试图过滤掉以数字开头的名字,只选择以字母表开头的名字。

以下是我的一些尝试,但未能产生预期效果:

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%') ...;

提前感谢您的帮助。我非常感激。 Stack Overflow一直是我的救星,因为我正在学习用PHP和MySQL编程。 洛瑞

3 个答案:

答案 0 :(得分:1)

更简单的解决方案是使用regexp运算符,而不是传递多个like

尝试:

SELECT name from subjects WHERE name REGEXP '^[a-zA-Z]';

这将选择名称以小写和大写字母开头的所有记录。

答案 1 :(得分:0)

你遇到的问题是你已经包含了多个问题。只需删除它们

SELECT name 
  from subjects 
 WHERE name LIKE ('A%') AND 
 name LIKE ('B%') AND 
 name LIKE ('C%')...;

答案 2 :(得分:0)

试试Regexp:

SELECT name 
FROM subjects 
WHERE name
REGEXP '[A-Za-z]'