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


MySQL using WHERE clause with multiple LIKEs

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

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

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]'