2015-07-26 1 views
0

У меня есть предварительные параметры, определяющие, что передается в мой запрос. В одном случае я хочу искать ВСЕ UUID, а в другом случае я хочу найти конкретные номера UUID. Я хотел бы сделать это в одном операторе запроса вместо того, чтобы разбить его на две отдельные звонки (как показано ниже)как иметь подстановочный знак в инструкции mysql с знаком «=»

пример 1:

$uuidtosearchfor = "1234"; 
$query = "SELECT ID,name,UUID FROM table where active = 1 AND UUID ='$uuidtosearchfor'"; 

exmaple 2:

$query = "SELECT ID,name,UUID FROM table where active = 1"; 

так что вместо этого я хочу это:

if(rule1) 
     $uuidtosearchfor = "*"; // return everything 
else 
$uuidtosearchfor = "2134"; // return everything 
     $query = "SELECT ID,name,UUID FROM table where active = 1 AND UUID = '$uuidtosearchfor' "; 
+1

В SQL вы не можете иметь «подстановочный знак» с оператором '=', только с оператором 'LIKE' или' REGEXP' .... хотя вы можете (если вам действительно нужно) использовать LIKE вместо '=' без подстановочного знака –

+0

Если у вас есть подстановочный знак, удалите 'AND UUID = '$ uuidtosearchfor'" 'из вашего предложения where ... –

ответ

2

Если вы используете LIKE вместо =, вы можете нам e % как подстановочный знак. Но LIKE не совсем то же самое, что и =.

С = вы можете построить запрос, например, UUID=UUID. Недостатком является то, что вы не можете использовать подготовленные инструкции и должны сами позаботиться о том, чтобы избежать этого параметра.

На самом деле, я не вижу, как это облегчает вашу жизнь. Я бы предпочел построить запрос, чтобы условие не было добавлено, если вы хотите совместить все uuids.

Смежные вопросы