gpt4 book ai didi

mysql - 将其用作值之前的 SQL 处理字符串

转载 作者:行者123 更新时间:2023-11-28 23:19:22 26 4
gpt4 key购买 nike

我正在使用 mysql。

我有一列的值是这样的:

"50 000 - 100 000 |##| 300 000 - 400 000"

这些值实际上是可以翻转的。例如:

"300 000 - 400 000 |##| 50 000 - 100 000"

对我来说,它的意思几乎就是 50 000 - 400 000

然后我需要在 sql 中比较它并检查此列是否:

range_column ("50 000 - 100 000 |##| 300 000 - 400 000") < max_value AND column range_column ("50 000 - 100 000 |##| 300 000 - 400 000") > min_value.

这样的事情有可能吗?

感谢帮助

最佳答案

这将为您获取范围内的最小值和最大值:-

SELECT MIN(aValue) AS range_start,
MAX(aValue) AS range_end
FROM
(
SELECT CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(REPLACE(REPLACE(some_column, ' - ', ','), ' |##| ', ','), ' ', ''), ',', tens.aCnt * 10 + units.aCnt + 1), ',', -1) AS UNSIGNED) AS aValue
FROM some_table
CROSS JOIN (SELECT 1 AS aCnt UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 0) units
CROSS JOIN (SELECT 1 AS aCnt UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 0) tens
) sub0

这使用 REPLACE 去除不需要的额外格式,并使用带逗号的 REPLACEing 空格将其转换为逗号分隔列表。然后将其与几个固定查询交叉连接以获得 1 到 100 之间的值列表,并使用它来拆分逗号分隔列表。所有用作子查询的结果以使用 MIN 和 MAX on

关于mysql - 将其用作值之前的 SQL 处理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42485487/

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