2017-07-10 18 views
0

我想在一个Mysql查询中使用TRIM从序列化元值[wp_woocommerce_order_itemmeta.meta_value]中获取一个数字。数字前后的文字始终保持一致。如何使用TRIM从序列化字段获取值

为了争议。值是red39blue - 我想检索数字39 - 或者数字是什么。

在我的大查询的选择部分我想是这样 -

TRIM(TRAILING 'blue' (TRIM(LEADING 'red', wp_woocommerce_order_itemmeta.meta_value))) 

任何帮助感激地接受了:)

+0

你在字段中字面意思是'red39blue'? – tadman

+0

这是可行的,但在SQL – Strawberry

+0

是可怕的复杂是这就是为什么我要求在这里;)我没有选择,因为我不能改变分贝 –

回答

0

您可以使用replace这个东西:

replace(replace(wp_woocommerce_order_itemmeta.meta_value, 'red', ''), 'blue', '') 
+0

谢谢Kosh,我独立工作,所以很高兴回到这里,看到它是一个OK方法,有点怪异的o/c。我认为另一种方法是使用嵌套的substring_inde X。我需要替换的困难是包含的字符串;和其他东西。不知道是否需要,但我将字符转换为十进制版本。完成的选择是: REPLACE(REPLACE(jn_postmeta_persons.meta_value,CONCAT(CHAR(59),CHAR(125)),“”),CONCAT(CHAR(97),CHAR(58),CHAR(49),CHAR (58),CHAR(123),CHAR(105),CHAR(58),CHAR(48),CHAR(59),CHAR(105),CHAR(58)),“”) –

+0

@Shaun如果您的mysql版本支持它们,请尝试使用JSON方法:https://dev.mysql.com/doc/refman/5.7/en/json.html –

相关问题