任何人都明白为什么这个查询不再有效?

1 mysql mariadb query

在本地主机上,此查询正常运行,运行正常的 MySQL:

SELECT COUNT(*) as rows, customers. * 
FROM customers 
WHERE user_id = 6 
      AND age = 10 
ORDER BY timestamp DESC LIMIT 0
Run Code Online (Sandbox Code Playgroud)

然而,在最新的 mariadb 上,它抛出了这个:

SELECT COUNT(*) as rows, customers. * 
FROM customers 
WHERE user_id = 6 
      AND age = 10 
ORDER BY timestamp DESC LIMIT 0
Run Code Online (Sandbox Code Playgroud)

1064 - 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在“行,客户”附近使用的正确语法。* FROM customer WHERE user_id = 6 AND age' 在第 1 行时间:0.011s

有谁知道为什么会这样?

Wil*_*ema 5

rows 是 MariaDB 中的保留关键字。

https://mariadb.com/kb/en/library/reserved-words/

除非您单引号或双引号或反引号:

select id as 'rows' from tbl;
select id as "rows" from tbl;
select id as `rows` from tbl;
Run Code Online (Sandbox Code Playgroud)

db<>在这里摆弄

正如dbdemon所评论的,rows现在也是 MySQL 中的保留字,特别是从版本 8.0.2 开始在此处查看另一个 db<>fiddle 演示。