Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да напиша нулево безопасно сравнение <=> в чист SQL?

Вторият и следващите отговори дават метод за това, без да се обвързва стойността за търсене два пъти:

SELECT * FROM ROUTERS 
WHERE coalesce(ROUTER_ADDRESS, '') = coalesce( ?, '');

Имайте предвид, че това изисква фиктивна стойност, която никога не може да бъде валидна стойност на колона (това е "извън диапазона"); Използвам празния низ. Ако нямате такава стойност, ще трябва да се примирите с обвързването на стойността два пъти:

SELECT * FROM ROUTERS 
WHERE ROUTER_ADDRESS = ? or (ROUTER_ADDRESS is null and ? is null);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Генерирайте сериен номер в mysql заявка

  2. Предупреждение:mysqli_stmt::bind_param():Броят на променливите не съвпада с броя на параметрите в подготвеното изявление

  3. Как да добавяте нови редове в jTable от база данни, докато щракнете върху бутона, без да изчиствате съществуващите редове

  4. Безопасно ли е да сравнявате низове с „по-голямо от“ и „по-малко от“ в MySQL?

  5. explode() функция с помощта на ГРУПОВ СЕПАРАТОР