gpt4 book ai didi

MySQL:从字符串列中获取分配数字

转载 作者:行者123 更新时间:2023-11-29 11:29:30 25 4
gpt4 key购买 nike

该表包含一个包含字符串的列。我想从字符串中提取数字。

代码:http://sqlfiddle.com/#!9/2af45

例如:
1 天 = 1
2 天随时 = 2
7 天 = 7

同日 = 1
对于不包含任何数字的字符串,我想为其分配一个数字。

我的想法:
enter image description here

最好的解决方案是什么,使得查询不会对 MySQL 的加载速度造成太大影响?

额外挑战:如果数字随机出现在字符串中,是否有任何方法/算法可以提取该数字?
例如。每2天一次,7天内促销

最佳答案

如果字符串以数字开头,您可以简单地 CAST它是一个UNSIGNED。数字后面的任何文本都会被忽略

CAST("2 Day anytime" AS UNSIGNED);
CAST("20 fishes" AS UNSIGNED);

任何不以数字开头的字符串都将变为0。您可以通过 NULLIF 的组合将其转换为其他值和 IFNULL .

IFNULL(NULLIF(CAST("SameDay" AS UNSIGNED), 0), 1);
<小时/>

您可以使用 ALTER TABLE 创建新列,然后执行 UPDATE 查询。

UPDATE foo (days_int)
SELECT IFNULL(NULLIF(CAST(days_string AS UNSIGNED), 0), 1)
FROM foo;

请注意,更新和选择来自同一个表。

关于MySQL:从字符串列中获取分配数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652915/

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