按条件获取SQL行

时间:2014-05-21 21:55:28

标签: php mysql sql

我试图通过某些条件获取一些行,但它不能按我的意愿工作; 请查看我的代码并分享您的想法。

            $query = mysqli_query($sqli,"SELECT * FROM  `table` WHERE 
                `name`      =       '$nameFA'   OR 
                `name`      =       '$nameLA'   OR
                `ft`        LIKE    '%$nameFA%' OR
                `ft`        LIKE    '%$nameLA%' AND
                `information`   LIKE    '%$info%'
            ");

如您所见,nameft的输入可能有两个不同的值。 如果information有类似$info变量的内容,则应提取行。

1 个答案:

答案 0 :(得分:3)

尝试这种方式:

$query = mysqli_query($sqli,"SELECT * FROM  `table` WHERE 
    (`name`      =       '$nameFA'   OR 
    `name`      =       '$nameLA'   OR
    `ft`        LIKE    '%$nameFA%' OR
    `ft`        LIKE    '%$nameLA%')
    AND `information`   LIKE    '%$info%'
");

或者这样,因为我不知道你想做什么,我们不知道如何放置括号:

$query = mysqli_query($sqli,"SELECT * FROM  `table` WHERE 
    `name`      =       '$nameFA'   OR 
    `name`      =       '$nameLA'   OR
    `ft`        LIKE    '%$nameFA%' OR
    (`ft`        LIKE    '%$nameLA%' AND
        `information`   LIKE    '%$info%'
    )
");

ALWAYS 在语句中有多个AND OR AND时添加括号。

考虑:

  • a =是一只狗
  • b =吠叫
  • c =步行

一个OR b和C在以下情况下是真的:(你是一只狗,或者你正在吠叫)你正在走路

当你是一只狗,或者(吠叫和行走)时,OR(b和C)是真的