mysql like query 和 sortby 字母的位置

标签 mysql case sql-like

我的查询类似于下面给出的链接中的问题。

https://dba.stackexchange.com/questions/60137/mysql-is-it-possible-to-order-a-query-by-a-specific-letter-using-order-by?newreg=c7d05bbfb2db401082ff650715882016

问题是,查询返回所有行,而不考虑搜索词。不仅我得到以 D 开头的 pname,而且即使是所有没有 D 的 pname,唯一的成功是结果的行的首字母为“D”,位于结果的顶部。我怎样才能避免这种情况?

最佳答案

你试过这样的事情吗(根据你提到的帖子):

    SELECT 
        pname, pdescription, price
    FROM
        products
    WHERE pname LIKE '%D%'
    ORDER BY 
    CASE
        WHEN pname LIKE 'D%' THEN 1
        ELSE 2
    END;

注意WHERE子句

关于mysql like query 和 sortby 字母的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972383/

相关文章:

c++ - 关于空与零的问题

javascript - 除了将它们全部列出来之外,使小写字母和大写字母在对象中具有相同值的更好方法是什么?

mysql - sqlalchemy中sql LIKE的逆向版本

mysql - 关于 mysql 的混淆,例如 search 和 = search

php - 选择日期为现在的所有行

php - 如何使用 ADODB 分析 SQL 查询?

sql - 在数据库中组织大量带时间戳的值(sql/nosql)

mysql - 检查日期字段是否是 MySQL 5 中间隔的倍数

SQL Case Order 按特定顺序

mysql不喜欢不行