我不确定mysql查询中是否有函数。我有一个价格表,列名是"价格",其类型是 VARCHAR()。出于多种原因,我故意需要它作为 VARCHAR。
现在的问题是,如果我想搜索产品的最高价格,例如 100000,但在我的列中,我们有不同类型的价格,示例如下:-
- 待定 374,500
- 谈判
- 299,000
我正在寻找像 intVal() 这样的函数,它将首先将字段值本身转换为 INTEGER 并进行比较。以下是我目前在查询中的陈述:-
。和价格 <= $maximum_价格
可能是这样的解决方案:intVal(price) <= $maximum_price
感谢任何帮助或解决方案的方向。 欢呼
试试这个...
字符串值为"0"。对其他值进行排序。.
SELECT CAST(price AS UNSIGNED INTEGER) price
FROM tt order by price desc
也许是这样的:
SELECT ... WHERE CAST(SUBSTRING_INDEX(REPLACE(price, ',', ''), ' ', -1) AS SIGNED) <= $maximum_price
但我同意之前的评论,你最好重新考虑你的桌子。
我认为在PHP中没有这样的函数。您必须自己对其进行硬编码才能获得合适的结果。
看起来价格列中有各种格式。我认为您要比较列中的值是否为"TBD 374,500",然后将 374500 与 100000 进行比较
在这种情况下,简单的整数转换会将所有以 char 开头的价格转换为 0。 您必须在 MySQL 中创建自己的函数来处理所有格式。