繁体   English   中英

SQL / PHP如何编写返回所有内容的WHERE

[英]SQL/PHP how to write WHERE which returns everything

我有一个PHP函数,该函数使用WHERE排序过程从SQL数据库中选择影片:

drop procedure if exists editFilm;

DELIMITER $$
CREATE PROCEDURE editFilm(
            IN inFilmId int,
            )
  BEGIN
  SELECT * from Film where FilmId = inFilmId
  END $$
DELIMITER ;

现在,我希望可以设置“所有内容”,以便所有数据都得到答复,就像WHERE不存在一样。

我尝试使用*,%并将其留空,但是这些都不起作用。

我该如何在哪里提供可以返回所有内容的值?

将查询更改为使用LIKE而不是= 如果参数不包含任何通配符,则SQL会将其视为= 但是,如果要匹配所有内容,则可以使用通配符'%'

如果要执行常规的相等性测试,请确保在为过程提供参数时,使用\\转义通配符。 LIKE模式中, %_是通配符。

SELECT * from Film
WHERE FilmId = inFilmId
OR inFilmId IS NULL
  ;

或者,如果您还想在一个空字符串上全部匹配


SELECT * from Film
WHERE FilmId = inFilmId
OR COALESCE(inFilmId, '') = ''
  ;

但是,如果您的inFilmId是整数,则可以发明另一个特殊值


SELECT * from Film
WHERE FilmId = inFilmId
OR COALESCE(inFilmId, -666) = -666
  ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM