gpt4 book ai didi

mysql - ORDER BY 在 MySQL 5.1 中不起作用

转载 作者:行者123 更新时间:2023-11-29 05:44:46 25 4
gpt4 key购买 nike

我在 php 中遇到 sql 查询问题:

select
user, name, outlet, switch, port, vlan, mac, status
from access where
user like '%'
and name like '%'
and outlet like '%'
and switch like '%'
and port like '%'
and vlan like '%'
and mac like '%'
and status like '%'
order by 'user';

当在 MySQL 客户端版本:5.1.36 上运行查询时,查询完全不起作用(ORDER BY 将不起作用),但是在 MySQL 客户端版本:4.1.13 上运行 SAME 查询时,ORDER BY 起作用!

几乎所有关于ORDER BY、WHERE、LIKE命令的手册我都查过了,但是没有结果。没有提及版本差异等。

最佳答案

您必须删除 ORDER BY 子句中 user 的引号。这就是导致 ORDER BY 无法按预期工作的原因,因为您可以在 ORDER BY 子句和 'user' 引号中的内容被视为表达式(常量)而不是列名。

测试用例(MySQL 5.1.45):

CREATE TABLE tb (id int);

INSERT INTO tb VALUES (5);
INSERT INTO tb VALUES (1);
INSERT INTO tb VALUES (4);
INSERT INTO tb VALUES (2);
INSERT INTO tb VALUES (3);

SELECT * FROM tb ORDER BY 'id';
+------+
| id |
+------+
| 5 |
| 1 |
| 4 |
| 2 |
| 3 |
+------+
5 rows in set (0.00 sec)

SELECT * FROM tb ORDER BY id;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+
5 rows in set (0.00 sec)

关于mysql - ORDER BY 在 MySQL 5.1 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3360169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com