0

这是一个更新字段,我正在检查以确保数字 AND 关键字 -> 或活动名称存在以防止重复。

此查询未按预期运行:

$STH = $DBH->prepare("
    SELECT * 
    FROM campaigns 
    WHERE number = :number AND keyword = :keyword
    OR name LIKE :name"
);

我希望它检查是否 (number=number AND keyword=keyword) OR (name=name) - 作为两个彼此不相关的不同语句。即使我将它们括在括号中,我仍然得到不正确的结果。

有什么帮助吗?

4

2 回答 2

4

LIKE如果它不应该像=运算符一样工作,还需要有 %

SELECT * FROM campaigns WHERE (number = :number AND keyword = :keyword) OR name LIKE %:name%"
于 2013-01-04T18:34:09.667 回答
1

像这样试试

     $STH = $DBH->prepare("SELECT * 
                   FROM campaigns 
                   WHERE (number = :number AND keyword = :keyword)
                   OR name LIKE :name"
                   );
于 2013-01-04T18:31:28.637 回答