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

WHERE Ако условието не е изпълнено, вземете всички стойности, включително NULL

Вместо това променете вашето условие на това:

where (@LastName = 'All' and 1=1) or (LastName = @LastName)

Идеята е, че когато @LastName ='Всички', тогава вашата заявка не трябва да има никакви филтри. Условието 1=1 винаги ще бъде вярно и заедно с другата проверка трябва да върне всички резултати. Другият път, по който може да поеме заявката, е филтриране по конкретно фамилно име, което определено трябва да изключва нулеви стойности.

Актуализация:Условието 1=1 е излишно. Можете да пренапишете условието като:

where (@LastName = 'All') or (LastName = @LastName)

Демо



  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 INSERT без да се налага да посочвате всяко поле, което не е по подразбиране (#1067 - Невалидна стойност по подразбиране за 'таблица')

  2. Най-добри практики с исторически данни в MySQL база данни

  3. Какво представлява MySQL еквивалентът на функцията CHOOSE() на SQL Server?

  4. вземете списък с ODBC източник на данни в локален компютър с помощта на PHP

  5. Как ще задам стойността по подразбиране на типа данни на MySQL enum като „Не“?