假设我在数据库中有一个名为CustomerNames的列,其值为:
我想创建一个只搜索FIRSTNAME和LASTNAME首字母的查询,并根据FIRSTNAME然后LASTNAME以ASC顺序列出名称。 例如,如果我在上表中搜索“al”,它应该返回如下所示的内容:
我使用了以下查询。
SELECT * FROM Customers where CustomerName LIKE 'al%' OR CustomerName LIKE '% al%' ORDER BY CustomerName
输出:
这是仅根据firstnames排序结果。 但是我想要一个查询,它使用firstnames然后是lastnames来提供输出。 感谢。
答案 0 :(得分:0)
我认为没有直接的答案。您需要编写一个函数或存储过程来根据列空间分隔的列值来排序结果
看看这个 MySQL: how to sort the words in a string using a stored function?
答案 1 :(得分:0)
试试这个:
SELECT * FROM Customers
where CustomerName LIKE 'al%'
OR CustomerName LIKE '% al%'
ORDER BY substring(CustomerName, instr(CustomerName, 'al'))