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

$search数値以外のvalに対してのみ、必要に応じてSELECTを取得できます

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 に答える