ВЫБОР с несколькими условиями WHERE - PullRequest
0 голосов
/ 02 июля 2018

это моя таблица [заказы] в БД

ID   link        Status   quantity
-----------------------------------
118  aaaa       Pending     1
119  bbdbdb     In Progress 2 
120  asdasdas   Complete    3 
121  dasdasda   Processing  1  
122  aaaa       Cancel      2

Я хочу выбрать в «Ссылке» статус, ожидающий обработки или обработки. это правильный путь к этому:

"SELECT * FROM orders WHERE link= '$link' AND status='Pending' OR status='In Progress' OR status='Processing'"

Заранее спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 02 июля 2018
SELECT * 
FROM orders 
WHERE link= '$link' 
  AND ( 
    status='Pending' 
    OR status='In Progress' 
    OR status='Processing' 
  )
0 голосов
/ 02 июля 2018

Это было быстрее, чем в трех значениях.

"SELECT * FROM orders WHERE link= '".$link."' AND status NOT IN ('Complete','Cancel')"

Но лучшее решение - создать таблицу со статусом и использовать FOREIGN KEY

CREATE TABLE status (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
) 

В таблицах заказов с использованием этих КЛЮЧЕВЫХ КЛЮЧЕЙ status.ID

0 голосов
/ 02 июля 2018

Вы также можете использовать предложение IN для того же

"SELECT * FROM orders WHERE link= '".$link."' AND status IN ('Pending','In Progress','Processing')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...