从mysql表获取一个单元格中有多个ID的信息

时间:2019-02-25 19:17:46

标签: php mysql

我有一张表格发票:

    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."%'";

2 个答案:

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