mysql就像查询和sortby的位置一样

时间:2016-06-22 15:27:36

标签: 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

问题是,查询返回所有行而不管搜索的术语。不仅我得到pname从D开始,但即使是所有那些没有D的人,只有成功的结果是行的开头字母为' D'在结果的顶部。我怎么能避免这种情况?

2 个答案:

答案 0 :(得分:2)

你有没有试过这样的东西(根据你提到的帖子):

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

注意 WHERE 子句

答案 1 :(得分:-1)

如果要列出搜索字段以D开头的所有行,只需添加

即可
..
WHERE my_field LIKE 'D%'