In MSSQL i am using query like below, and it will make different queries depending what i have in $search: text or numbers.

$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";

How i can do the same in MySQL?

Thank you.

有帮助吗?

解决方案

maybe this can help you

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

or

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

其他提示

In SELECT statement, you can use OR within the WHERE condition, it could be

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

You can get SELECT as You wish only for not numeric $search val

SELECT * FROM giper
WHERE (name LIKE '%$search%' OR art LIKE '$search%')
and '$search' NOT REGEXP '^-?[0-9]+$'
ORDER BY art, name LIMIT 20
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top