我在一个名为saleprice
和regularprice
的表格中有两列。此表包含基于拍卖的网站列表的记录。如果用户决定他们可以放入低于saleprice
的{{1}}或者他们可以简单地放入regularprice
并将regularprice
留空。
我构建了一个saleprice
,允许用户根据价格查看从低到高或从高到低的记录。问题是,如果有select
,那么regularprice
字段将为空。如果有saleprice
,那么saleprice
和regularprice
字段都会包含值,当然saleprice
会更低。
我正在尝试根据用户选择的内容返回记录但我无法获取我的声明以正确地搜索两列的记录。
基本上我需要排序,如果saleprice
不为空,则使用saleprice
否则只需使用regularprice
以下是我到目前为止的例子
从低到高
regularprice
从高到低
SELECT * FROM market_posts
WHERE live = 1 AND category = '1'
ORDER BY IF(saleprice != '',saleprice,regularprice) ASC
答案 0 :(得分:2)
如果saleprice
未设置为NULL
,请使用COALESCE
:
SELECT *
FROM market_posts
WHERE live = 1 AND category = '1'
ORDER BY COALESCE(saleprice, regularprice) ASC -- OR DESC