SQL查询顺序

时间:2018-05-05 11:51:22

标签: mysql sql

我是iOS开发人员,我对SQL数据库没有任何经验。但是我使用下一个查询来获取一些信息:

INSERT INTO search ( packageID )
    SELECT RowID
    FROM packages
    WHERE name LIKE ? OR description LIKE ?
    ORDER BY %@ ASC

%@它只是一个Objective-C NSString的东西。)

我的问题是,无论如何命令结果使第一个WHERE(WHERE name LIKE ?)返回的结果超过第二个WHERE返回的结果吗?

非常感谢,请原谅我的无知!

1 个答案:

答案 0 :(得分:1)

如果您想让一个条件优先于另一个条件,您可以在order by的键中表示:

SELECT RowID
FROM packages
WHERE name LIKE ? OR description LIKE ?
ORDER BY (CASE WHEN name LIKE ? THEN 1 ELSE 2 END),
          %@ ASC  -- not sure if this is needed or desired

请注意,SQL表代表无序集。如果您确实需要此顺序的结果集,请运行SELECT查询。一旦进入表格,订购信息就会(理论上)丢失。