#php #mysql #syntax
#php #mysql #синтаксис
Вопрос:
итак, я получил этот PHP-код здесь:
SELECT status , IF(type = '" . mysqli_real_escape_string($con,$type) . "' , type, '') AS status FROM novacorp.status WHERE type = '" . mysqli_real_escape_string($con,$type) . "' LIMIT 1;
Я также хочу добавить к этому еще одно условие, чтобы оно выбирало статус только в том случае, если столбец info также равен чему-то, что я передаю с помощью escape-строки, как показано выше.
То же самое для этого оператора:
UPDATE `novacorp`.`status` SET `status`=". $status ." WHERE `type`='" . mysqli_real_escape_string($con,$type) . "';
Комментарии:
1. Если вы используете подготовленный оператор , ваш код будет намного легче читать. Ознакомьтесь с руководством, чтобы узнать, как это сделать.
2. Вставьте
case when .. then else .. end
SQL
Ответ №1:
IF(type=whatever AND info=other, valueiftrue, valueiffalse)
вероятно, это то, что вы хотите
Комментарии:
1. И то же самое для
UPDATE
:WHERE type=this AND info=that
2. Спасибо! Каким именно будет это утверждение? С помощью 2 условных выражений:
SELECT status , IF(type = '" . mysqli_real_escape_string($con,$type) . "' , type, '') AS type FROM novacorp.status WHERE type = '" . mysqli_real_escape_string($con,$type) . "' LIMIT 1;
3. Этот оператор избыточен. Поскольку у вас уже есть
WHERE
условиеtype
,IF
условие (то же самое) всегда истинно, поэтому вы можете упростить его доSELECT status,type FROM novacorp.status WHERE type='".mysqli_real_escape_string($con,type)."' LIMIT 1
. Чтобы добавить еще одно условие, просто добавьте, например, ` AND field=value`4. Не могли бы вы дать мне полный оператор с добавленным условным
info='".mysqli_real_escape_string($con,$additional_info)."'
выражением? Похоже, у меня это не работает5.
SELECT status,type FROM novacorp.status WHERE type='".mysqli_real_escape_string($con,type)."' AND info='".mysqli_real_escape_string($con,$additional_info)."' LIMIT 1