如何知道它是否通过sql.php中的where子句获得了行


How to know if it got the row through that where clause in sql/php

我不知道这是否可能:

SELECT * FROM stuff WHERE barcode = '123123' OR product like '%123123%'

假设这返回10行。10行中有2行被退回,因为它们的条形码中有123123。

现在,可以通过某种方式创建一个别名/变量来知道它是因为它与条形码匹配。

所以我可以做:

if($MatchWasFromBarcode) {.... }

还是我必须对此进行两次查询?

假设您使用的是MySQL:

SELECT 
    barcode = '123123' AS MatchWasFromBarcode,
    col1, col2, ..., coln
FROM stuff
WHERE barcode = '123123' OR product like '%123123%'

对于其他数据库,将第二行更改为:

    CASE WHEN barcode = '123123' THEN 1 ELSE 0 END AS MatchWasFromBarcode,
SELECT case when barcode='your_value' then 1 else 0 end as matches_bar_code
, col1
, col2
, col3
, col4
FROM stuff 
WHERE barcode = '123123' 
OR product like '%123123%' 

不要执行select *。不良做法。列出您需要的列。