不使用类似的运算符从序列化数据中返回行
Select * from `transactions` where 'order_id' like "'%115%'"
答案 0 :(得分:1)
根据您的代码,您尝试不匹配列名,而是匹配字符串'order_id'与字符串''%115%'“,这显然不匹配,因此您没有行结果..那么< / p>
避免在列名周围使用单引号,并使用concat构成适当的条件
Select * from `transactions` where order_id like concat('%', '115', '%')
,并确保您的order_id是字符串数据类型的列,否则应使用
Select * from `transactions` where order_id =115
答案 1 :(得分:0)
使用以下之一:
1)如果您的order_id字段是整数,并且您想获取准确的值,请尝试
SELECT * FROM `transactions` WHERE order_id = 115
2)如果您的order_id字段是整数,并且想要获取匹配的值,请尝试
SELECT * FROM `transactions` WHERE CAST(order_id AS CHAR) LIKE '%115%'
3)如果您的order_id字段为字符串并存储为序列化数据,请尝试
SELECT * FROM table WHERE field REGEXP '.*"array_key";s:[0-9]+:".array_value.".*'
ex. : SELECT * FROM `transactions` WHERE order_id REGEXP '.*"m5";s:[0-9]+:"115".*'
4)如果您的order_id字段存储为简单字符串,请尝试
SELECT * FROM `transactions` WHERE order_id LIKE '%115%'
我希望这会对您有所帮助:)