从“交易”中选择*,其中“ order_id”类似于“'%115%'”

时间:2018-10-24 06:17:51

标签: php mysql database laravel

不使用类似的运算符从序列化数据中返回行

Select * from `transactions` where 'order_id' like "'%115%'"

2 个答案:

答案 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%'

我希望这会对您有所帮助:)