0

我正在尝试使用以下 select 语句按 ASC 或 DESC 对结果进行排序。

$query = "SELECT filmcode, FilmName, Genre FROM film WHERE Genre = '".$genre_value."' ORDER by '".$order_value."' ASC";

该表加载正确,但属性未按 ASC 排序,有人可以帮我找出 select 语句有什么问题吗?

4

1 回答 1

1

该语句没有正确排序记录,因为列名是用单引号引起来的。删除引号,它肯定会起作用:

$query = "SELECT filmcode, FilmName, Genre FROM film WHERE Genre = '$genre_value' ORDER by $order_value ASC";

如果$order_value是列名,如果它恰好是保留关键字,则可以使用反引号进行转义。列名和表名是标识符。单引号使标识符成为字符串文字,导致 order by 子句出现意外行为。

于 2013-04-28T17:22:38.760 回答