我有一张表格发票:
id|orders|user|status|
1 |1,2,5 |1 |1 |
2 |75 |2 |0 |
3 |31,4 |5 |1 |
我对数据库的请求应该是什么,以便我可以通过“订单”列中的订单号收到发票状态。
在我看来,此处使用LIKE的方法不合适,因为它会选择错误的值。
$sql = "SELECT status FROM invoices WHERE orders LIKE '%".$order_id."%'";
答案 0 :(得分:1)
您想要的是
$sql = "SELECT status
FROM invoices
WHERE CONCAT(',', orders, ',') LIKE '%,".$order_id.",%'";
答案 1 :(得分:0)
您可以在不使用空间的情况下尝试
$sql =<<<REQQ
SELECT status
FROM invoices
WHERE orders LIKE '{$order_id}'
OR orders LIKE '{$order_id},%'
OR orders LIKE '%,{$order_id},%'
OR orders LIKE '%,{$order_id}'
REQQ;
//end