Php 如果查询包含破折号,则mysql结果为空

Php 如果查询包含破折号,则mysql结果为空,php,mysql,date,phpmyadmin,Php,Mysql,Date,Phpmyadmin,当我尝试使用以下查询从MY-SQL DB中删除一些行时,得到的结果为空: DELETE FROM custom_prices WHERE day IN (2018-04-01,2018-04-02,2018-04-03) MY-SQL server在任何“-”之前添加空格的问题。。。。查询如下所示: DELETE FROM custom_prices WHERE day IN ( 2018 -04 -01, 2018 -04 -02, 2018 -04 -03 ) day列是日期类型。。。我

当我尝试使用以下查询从MY-SQL DB中删除一些行时,得到的结果为空:

DELETE FROM custom_prices WHERE day IN (2018-04-01,2018-04-02,2018-04-03)
MY-SQL server在任何“-”之前添加空格的问题。。。。查询如下所示:

DELETE FROM custom_prices WHERE day IN ( 2018 -04 -01, 2018 -04 -02, 2018 -04 -03 )
day列是日期类型。。。我试图将类型更改为字符串,但仍然给我空结果。。。
任何人都可以帮忙吗?

将你的日期用引号括起来,如下所示:

DELETE FROM custom_prices WHERE day IN ('2018-04-01','2018-04-02','2018-04-03')

您的查询有问题。您需要将值放在引号中

DELETE FROM custom_prices WHERE day IN ('2018-04-01','2018-04-02','2018-04-03')

-
是负号。你需要把日期放在信封里quotes@u_mulder如果这解决了问题,请写下来作为答案。我不太喜欢使用
day
作为列名。例如,MySQL中有一个函数,其中DAY(date_fld)=1。MySql可能足够聪明,可以在不使用backtics的情况下解决这个问题,但我不是它的粉丝。只是说说而已。也许应该先将日期转换成正确的格式?
'2018-04-01'、'2018-04-02'、'2018-04-03'
是有效日期(根据mysql日期格式)yyyy-mm-dd,不是吗@乌穆德