gpt4 book ai didi

mysql - 如何显示表中的一半记录?数据库

转载 作者:行者123 更新时间:2023-11-29 01:12:44 27 4
gpt4 key购买 nike

我正在寻找 MYSQL QUERY,而不是 PLSQL QUERY

select *  from aadhar limit (select count(*)/2 from aadhar);

我试着喜欢这个但是出现这个错误请帮助

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(select count(*)/2 from aadhar )' at line 1

最佳答案

就像已经解释过的其他答案一样,LIMIT 不能在查询中动态设置。
但是您可以使用 MySQL 用户变量结合 PREPARE/EXECUTE 来解决它..

SET @count = (SELECT COUNT(*)/2 FROM aadhar); 
SET @sql = CONCAT('SELECT * FROM aadhar LIMIT ', @count);

PREPARE q FROM @sql;
EXECUTE q;
DEALLOCATE PREPARE q;

或者(最安全的选择)

SET @count = (SELECT COUNT(*)/2 FROM aadhar); 

PREPARE q FROM 'SELECT * FROM aadhar LIMIT ?';
EXECUTE q USING @count;
DEALLOCATE PREPARE q;

额外警告

请注意,根据定义,SQL 是无序。使用 LIMIT 而不使用 ORDER BY毫无意义的。 SQL 可以自由返回以任意顺序匹配的记录,无需 ORDER BY,这意味着两次运行相同的查询可能会导致不同的结果。

此外,最好使用 CEIL()CAST() 将 double 转换为 int,这样当表中有奇数时方法不会出错使用这样的 double 记录和生成 SQL SELECT * FROM aadhar LIMIT 1.500000000

参见 demo关于如何做这些

关于mysql - 如何显示表中的一半记录?数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54422411/

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