在MSSQL中我使用如下的查询,它会根据我在$ search:text或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";
我如何在MySQL中做同样的事情?
谢谢。
答案 0 :(得分: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
答案 1 :(得分:1)
在 SELECT 语句中,您可以在 WHERE 条件中使用 OR ,它可以是
SELECT * FROM giper
WHERE name LIKE '%$search%' OR art LIKE '$search%'
ORDER BY art, name LIMIT 20
答案 2 :(得分:0)
您可以获得SELECT,因为您只希望不是数字$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