为了账号安全,请及时绑定邮箱和手机立即绑定

如何从MySQL查询的字符串中提取数值?

如何从MySQL查询的字符串中提取数值?

LEATH 2019-11-02 13:33:30
我有一个包含两列的表:price(int)和price_display(varchar)。price是实际的数字价格,例如“ 9990”price_display是视觉表示,例如“ $ 9.99”或“ 9.99Fr”我已经能够通过regexp确认两列是否匹配:price_display不是regexp格式(price / 1000,2)但是在不匹配的情况下,我想从price_display列中提取值并将其设置为price列,所有这些都在update语句的上下文中。我还不知道怎么做。谢谢。
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

一种方法是使用REPLACE()函数:


UPDATE my_table

SET    price = replace(replace(replace(price_display,'Fr',''),'$',''),'.','')

WHERE  price_display not regexp format(price/1000, 2);

这适用于您提供的示例数据:


'$9.99'

'9.99Fr'

在我的测试中,两者均得出999。通过这样的更新,重要的是要确保首先备份数据库,并了解项目的格式。通过执行以下查询,您可以看到所有“坏人”:


SELECT   DISTINCT price_display

FROM     my_table

WHERE    price_display not regexp format(price/1000, 2)

ORDER BY price_display;


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 946 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信