0

我有一个网站,我正在用 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 ");
4

1 回答 1

2

您需要ORDER使用一条IIF语句(类似于CASEANSI SQL 中的 a )

http://www.techonthenet.com/access/functions/advanced/iif.php

所以你可以按(未经测试)排序:

IIF (RIGHT(product.[proddesc],10) = "(Obsolete)", "b", "a")

这将创建一个新的派生列,过时时为“b”,否则为“a”......

于 2013-04-01T22:55:17.147 回答