我有一个用PHP重建的网站,可以从Access数据库中读取。我有大部分功能可以根据选择下拉列表中的类别来显示产品列表。但是,我想做的一件事是将所有过时的产品移到结果列表的底部。目前,它们在显示的结果中混合。
是否有允许我这样做的SQL语句?目前,数据库中的所有过时产品都在其产品名称的末尾附加了“(已过时)”。我希望我可以将字符串(Obsolete)作为目标。
这是我当前的SQL语句:
$handle = odbc_connect("Potter","","");
$results = odbc_exec($handle, "SELECT DISTINCT product.prodimage,
product.prodmodelno,
product.proddesc,
product.prodorder,
product.prodpdf,
product.prodmanual,
product.prodtip
FROM product
WHERE (( ( product.prodmodelno ) LIKE '%$searchTerm%' ))
OR (( ( product.proddesc ) LIKE '%$searchTerm%' ))
ORDER BY product.prodorder DESC,
product.prodmodelno ASC ");
答案 0 :(得分:2)
您需要ORDER
使用IIF
语句(类似于ANSI SQL中的CASE
)
http://www.techonthenet.com/access/functions/advanced/iif.php
所以你可以按(未经测试)排序:
IIF (RIGHT(product.[proddesc],10) = "(Obsolete)", "b", "a")
这会创建一个新的派生列,过时时为“b”,否则为“a”....