gpt4 book ai didi

php - 在 SELECT 语句中使用括号和 LIMIT 时出现错误 "A non-numeric value encountered"

转载 作者:行者123 更新时间:2023-11-29 15:52:32 24 4
gpt4 key购买 nike

请查看底部的最后编辑

<小时/>

我在 phpMyAdmin 中使用 MySQL 进行以下查询:

(SELECT 
id,
name,
rank1,
rank2
FROM rank_list
LEFT JOIN names ON names.id = rank_list.name_id
WHERE type = "typeA"
ORDER BY rank1
LIMIT 50)

UNION ALL

(SELECT
id,
name,
rank1,
rank2
FROM rank_list
LEFT JOIN names ON names.id = rank_list.name_id
WHERE type = "typeB"
ORDER BY rank2
LIMIT 50)

  • 它的作用是获得 rank1 的前 50 名排名的typeA并将其与 rank2 的前 50 名排名合并的typeB .
  • 我需要在每个子项周围使用括号 SELECT因为我申请了 LIMITORDER BY向双方发表声明。
  • 两者都工作正常。

问题

应用 UNION 时出现以下错误对于这两个查询:

A non-numeric value encountered

我真的不明白...可能导致这种情况的一件事是我填写了 rank1栏目-1如果type = "typeB" (rank2type = "typeA" 相同。

或者这里还有别的东西吗?

编辑:

当我不应用 LIMIT 时,它确实有效。到它

编辑2

我发现在执行以下操作(使用括号)时我也会遇到相同的错误:

(SELECT id FROM rank_list LIMIT 1)

最佳答案

尝试使用强制转换来强制执行数据类型

  (SELECT 
id,
name,
cast(rank1 AS SIGNED ),
cast(rank2 AS SIGNED )
FROM rank_list
LEFT JOIN names ON names.id = rank_list.name_id
WHERE type = "typeA"
ORDER BY rank1
LIMIT 50)

UNION ALL

(SELECT
id,
name,
cast(rank1 AS SIGNED ),
cast(rank2 AS SIGNED )
FROM rank_list
LEFT JOIN names ON names.id = rank_list.name_id
WHERE type = "typeB"
ORDER BY rank2
LIMIT 50)

关于php - 在 SELECT 语句中使用括号和 LIMIT 时出现错误 "A non-numeric value encountered",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56698491/

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