Php MySQL使用WHERE子句和多个LIKE
我有一个简单的名称表,一些以字母开头,一些以数字开头。我试图过滤掉以数字开头的名字,只选择字母表中以字母开头的名字 以下是我的一些尝试,但未能产生预期的结果:Php MySQL使用WHERE子句和多个LIKE,php,mysql,sql,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%',
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更简单的解决方案是使用运算符,而不是像s那样传递多个
尝试:
这将选择名称以小写和大写字母开头的所有记录。您遇到的问题是您包含了多个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]'
非常感谢。我以为有一种方法可以使用正则表达式,但那对我来说是一个新世界。非常感谢。我明白了,我的语法有点错误。我现在明白了如何做到这一点,但正则表达式似乎是我最好的选择。它们应该是ORs,而不是ANDs。
SELECT name
FROM subjects
WHERE name
REGEXP '[A-Za-z]'