0

在 MSSQL 中,我使用如下查询,它会根据我在 $search 中的内容进行不同的查询:文本或数字。

$query="
                IF (isnumeric('$search')=0)
                SELECT *
                FROM giper
                WHERE `name` LIKE '%$search%'
                ORDER BY `art`, `name`
                LIMIT 20

                ELSE
                SELECT *
                FROM giper
                WHERE `art` LIKE '$search%'
                ORDER BY `art`, `name`
                LIMIT 20";

我如何在 MySQL 中做同样的事情?

谢谢你。

4

3 回答 3

1

也许这可以帮助你

            SELECT *
            FROM giper
            WHERE `name` LIKE '%$search%' OR `art` LIKE '$search%'
            ORDER BY `art`, `name`
            LIMIT 20

或者

   SELECT *
          FROM giper
          WHERE if ('$search'=0 ,`name` LIKE '%$search%' , `art` LIKE '$search%')
          ORDER BY `art`, `name`
          LIMIT 20
于 2013-07-18T09:56:23.267 回答
1

SELECT语句中,您可以在WHERE条件中使用OR,它可以是

   SELECT * FROM giper
      WHERE name LIKE '%$search%' OR art LIKE '$search%'
      ORDER BY art, name LIMIT 20
于 2013-07-18T09:58:16.403 回答
0

您可以按照您的意愿获得 SELECT 仅用于非数字$searchval

SELECT * FROM giper
WHERE (name LIKE '%$search%' OR art LIKE '$search%')
and '$search' NOT REGEXP '^-?[0-9]+$'
ORDER BY art, name LIMIT 20
于 2013-07-18T10:02:01.603 回答