Php 如何使用sql显示名称从首字母A-D开始的结果
我想显示db名称表的结果,我只想显示以a-D开头的名称,就像以a、b、c和D开头一样。我想知道我们是否可以在LIKE子句中使用多个值,如LIKE a%、b%、c%、d%。我想知道它是否会起作用,是否有更合适的方法来实现这一点。您可以使用多个Php 如何使用sql显示名称从首字母A-D开始的结果,php,mysql,Php,Mysql,我想显示db名称表的结果,我只想显示以a-D开头的名称,就像以a、b、c和D开头一样。我想知道我们是否可以在LIKE子句中使用多个值,如LIKE a%、b%、c%、d%。我想知道它是否会起作用,是否有更合适的方法来实现这一点。您可以使用多个类似的子句,由或分隔: SELECT * FROM names WHERE name LIKE 'A%' OR name LIKE 'B%' OR name LIKE 'C%' OR name LIKE 'D%' 或者可以使用正则表达式(REGEXP): 编
类似的子句,由或分隔:
SELECT * FROM names WHERE name LIKE 'A%' OR name LIKE 'B%' OR name LIKE 'C%' OR name LIKE 'D%'
或者可以使用正则表达式(REGEXP
):
编辑
下面是另一种使用UCASE
、SUBSTR
和中的的方法:
SELECT * FROM names WHERE UCASE(SUBSTR(name, 1, 1)) IN ('A', 'B', 'C', 'D')
您可以使用多个类似的
子句,由或
分隔:
SELECT * FROM names WHERE name LIKE 'A%' OR name LIKE 'B%' OR name LIKE 'C%' OR name LIKE 'D%'
或者可以使用正则表达式(REGEXP
):
编辑
下面是另一种使用UCASE
、SUBSTR
和中的的方法:
SELECT * FROM names WHERE UCASE(SUBSTR(name, 1, 1)) IN ('A', 'B', 'C', 'D')
%
是一个通配符,用于表示任何字符,因此可能不是您想要的
更好的方法是使用mysqlREGEXP
,这样您的查询变成:
SELECT x, y, z FROM people WHERE first_name REGEXP '^[A-z]';`
您可以在此处找到更多信息:
这个%
是一个通配符,用于表示任何字符,因此可能不是您想要的
更好的方法是使用mysqlREGEXP
,这样您的查询变成:
SELECT x, y, z FROM people WHERE first_name REGEXP '^[A-z]';`
您可以在此处找到更多信息:
我能很快找到的一个简单方法是:
从
表格中选择字段a,其中字段a类似于“a%”或字段a类似于“b%”或字段a类似于“c%”或字段a类似于“d%”
我可以快速找出的一个简单方法是:
从表中选择字段a,其中字段a类似于“a%”或字段a类似于“b%”或字段a类似于“c%”或字段a类似于“d%”
我认为最简洁的方法是:
select t.*
from t
where left(name, 1) in ('A', 'B', 'C', 'D')
或者更简短地说:
select t.*
from t
where left(name, 1) between 'A' and 'D';
请注意,尽管这些是大写,但比较可能不区分大小写(MySQL上的默认值),因此“a”、“b”、“c”和“d”将匹配这些
或者,你可以用一些深奥的语言把它缩短:
select t.*
from t
where name >= 'A' and name < 'E';
选择t*
从t
其中名称>='A'和名称<'E';
我认为最简洁的方式是:
select t.*
from t
where left(name, 1) in ('A', 'B', 'C', 'D')
或者更简短地说:
select t.*
from t
where left(name, 1) between 'A' and 'D';
请注意,尽管这些是大写,但比较可能不区分大小写(MySQL上的默认值),因此“a”、“b”、“c”和“d”将匹配这些
或者,你可以用一些深奥的语言把它缩短:
select t.*
from t
where name >= 'A' and name < 'E';
选择t*
从t
其中名称>='A'和名称<'E';
应该有用
应该有用