Mysql Sql查询如何选择特定数据并输出结果的其余部分

Mysql Sql查询如何选择特定数据并输出结果的其余部分,mysql,sql,select,where-clause,Mysql,Sql,Select,Where Clause,这是我的桌子 ID Name 1 ddd 2 bbb 3 ccc 4 aaa 5 eee 尝试: 试试这个 SELECT * FROM TABLENAME WHERE NAME > 'CERTAINLETTER%' ORDER BY NAME 永远不要使用保留名称,例如字段名的名称。将其更改为类似fldNAME或其他内容。此操作有效:请参阅 子查询获取符合首字母要求的按字母顺序排列的名字。主查询获取名称匹配或按字母顺序大于子查询结

这是我的桌子

ID Name 1 ddd 2 bbb 3 ccc 4 aaa 5 eee 尝试:

试试这个

SELECT * FROM TABLENAME WHERE NAME > 'CERTAINLETTER%' ORDER BY NAME
永远不要使用保留名称,例如字段名的名称。将其更改为类似fldNAME或其他内容。

此操作有效:请参阅

子查询获取符合首字母要求的按字母顺序排列的名字。主查询获取名称匹配或按字母顺序大于子查询结果的所有行

ASC关键字是多余的,但我想我应该说清楚

LIKE检查区分大小写。如果希望它不区分大小写,请使用大写名称,如“C%”或小写名称,如“C%”。您还应该将主查询的where子句更改为where UPPERNAME>=或where LOWERNAME>=

基于,下面的工作效率会更高,但您仅限于匹配第一个字母,更复杂的模式仍然需要我在上面的查询

SELECT  * FROM table_name WHERE name >= 'c' ORDER BY name

看。阿贾辛格应得的荣誉。

@user3167278:点菜人?你,先生,是个邪恶的天才。哦,你加拿大人对你的赞美如此慷慨^ ^这真的帮了大忙!tnx^这类方法也有效,执行计划比我的好,除非你必须将条件更改为>='c'才能更正确。由于运算符>不支持%pattern匹配,因此可能有一行的值仅为“c”。瞧,哦,对不起,我没那么理解这个问题。已经编辑过了。
SELECT * FROM TABLENAME WHERE NAME > 'CERTAINLETTER%' ORDER BY NAME
SELECT * FROM TABLE_NAME
WHERE NAME >=
    (SELECT NAME FROM TABLE_NAME
     WHERE NAME LIKE 'c%'
     ORDER BY NAME ASC --to ensure first name is truly the first
     LIMIT 1 --to ensure there's only one value from the subquery
    )
ORDER BY NAME ASC
SELECT  * FROM table_name WHERE name >= 'c' ORDER BY name