gpt4 book ai didi

php - mysql BETWEEN 将返回 0 行

转载 作者:行者123 更新时间:2023-12-01 00:04:55 26 4
gpt4 key购买 nike

我有一个 MySQL 表,其价格结构如下:

-------------------- 
| Price | item_id |
--------------------
|$10,999| 123 |
|$5,889 | 321 |
|$2999 | 143 |
|------------------|

现在如果我查询这个:

SELECT * FROM products WHERE price BETWEEN "$2999" AND "$6000";

它将返回两行。但是如果我查询这个:

SELECT * FROM products WHERE price BETWEEN "$2999" AND "$20000";

它不会返回任何行,因为它预计至少会返回 3 行?

请注意,还有许多其他行,如 $11,000 等等...

如有任何帮助,我们将不胜感激!

最佳答案

您应该将其存储为字符串或 varchar。它现在执行的方式是比较字符串,这就是你没有结果的原因。如果我是你,我将通过将 Price 列更改为 INTDECIMAL 或任何只要它是数字的列来重组表格.

但要直接回答您的问题,您可以这样做,但如果您定义了索引,则不使用任何索引。

WHERE CAST(REPLACE(REPLACE(price,'$',''),',','') AS SIGNED) 
BETWEEN 2999 AND 20000

关于php - mysql BETWEEN 将返回 0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633702/

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