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

我有一个包含两列的表:price(int)和price_display(varchar)。


price是实际的数字价格,例如“ 9990”


price_display是视觉表示,例如“ $ 9.99”或“ 9.99Fr”


我已经能够通过regexp确认两列是否匹配:


price_display不是regexp格式(price / 1000,2)


但是在不匹配的情况下,我想从price_display列中提取值并将其设置为price列,所有这些都在update语句的上下文中。我还不知道怎么做。


谢谢。


LEATH
浏览 947回答 3
3回答

鸿蒙传说

一种方法是使用REPLACE()函数:UPDATE my_tableSET    price = replace(replace(replace(price_display,'Fr',''),'$',''),'.','')WHERE  price_display not regexp format(price/1000, 2);这适用于您提供的示例数据:'$9.99''9.99Fr'在我的测试中,两者均得出999。通过这样的更新,重要的是要确保首先备份数据库,并了解项目的格式。通过执行以下查询,您可以看到所有“坏人”:SELECT   DISTINCT price_displayFROM     my_tableWHERE    price_display not regexp format(price/1000, 2)ORDER BY price_display;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL