Intereting Posts
Как преобразовать массив в объект с помощью stdClass () FB Messenger Bot: обновления Webhook не доставляются multi textfield с автозаполнением, но почему только первый Рекурсивный поиск массивов PHP Как добавить все значения массива в PHP? Как я могу использовать функцию preg_replace PHP для преобразования кодовых точек Unicode в реальные символы / объекты HTML? Можно ли использовать конкатенацию строк для определения класса CONST в PHP? Выравнивание ларавелла неправильно вызвано несколькими встроенными css и внешними css в одном файле клипа Переносимость GLOB_BRACE? PHP SQL Foreach Statement В php делает «return false» делать что-либо после выражения echo? Проблема с подпрограммой PHP Substr Как отправить PHP-почту на несколько адресов электронной почты, полученных через MySQL-запрос Можно ли динамически определять значение свойства класса в PHP? Zend_Auth: разрешить пользователю вход в несколько таблиц / идентификаторов

PHP mysqli query, чтобы проверить, существует ли строка

У меня есть таблица mysql, я хочу проверить, существует ли строка, где columnA = $ a и $ columnB = $ b. Мне не нужно ничего выбирать. Каким должен быть эффективный запрос? В настоящее время я делаю,

if ($stmt = mysqli->prepare("SELECT * FROM TABLE WHERE columnA=? && columnB= ? LIMIT 1")) { $stmt->bind_param("ss", $a, $b); $stmt->execute(); $stmt->store_result(); $count=$stmt->num_rows; $stmt->close(); } return ($count > 0 ? true : false); 

Related of "PHP mysqli query, чтобы проверить, существует ли строка"

Попробуйте следующее:

 if ($stmt = $mysqli->prepare("SELECT COUNT(*) FROM TABLE WHERE columnA=? && columnB=?")) { $stmt->bind_param("ss", $a, $b); $stmt->execute(); $stmt->bind_result($count); $stmt->fetch(); $stmt->close(); } return ($count > 0 ? true : false); 

Теперь вы сможете это сделать

Это эффективный запрос, если вы хотите улучшить этот запрос, вы должны выбрать один столбец только для ускорения запроса.

 if ($stmt = mysqli->prepare("SELECT id FROM TABLE WHERE columnA=? && columnB= ? LIMIT 1")) { 

Выберите только одно поле из строки, а не все ( * ). Несмотря на то, что вы их не используете, mysql все еще должен извлекать их из хранилища и получать их для передачи.

 SELECT columnA FROM table WHERE ... 

В противном случае вы ничего не можете сделать, чтобы улучшить ситуацию, кроме того, чтобы помещать индексы в столбцы A и columnB, чтобы ускорить поиск.