【问题标题】:SQL QUERY HELP , WHAT TO DO?SQL查询帮助,怎么办?
【发布时间】:2018-01-16 21:30:08
【问题描述】:
SELECT * FROM tbl_subject WHERE SubjectName='MATH',SubjectStart LIKE '7:00 A.M',SubjectEnd LIKE '8:00 A.M'

求助!!

SubjectStart 和 SubjectEnd 是 varchar

错误:

查询:

 Select * from tbl_subject   where SubjectName='MATH',  SubjectStart like '7:00 A.M',  SubjectEnd like '8:00 A.M'  LIMIT 0, 1000

错误代码:1064

You have an error in your SQL syntax; check the manual that corresponds to 

your MariaDB server version for the right syntax to use near '
SubjectStart like '7:00 A.M',
SubjectEnd like '8:00 A.M'
LIMIT 0, 1000' at line 2

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    条件必须用ANDOR 分隔,不能用逗号分隔

    Select * from tbl_subject   
    where SubjectName='MATH' AND  SubjectStart = '7:00 A.M' AND  SubjectEnd = '8:00 A.M'  LIMIT 0, 1000
    

    LIKE 没有通配符就毫无意义。

    SubjectStartSubjectEnd 是什么数据类型?看起来它应该是一个时间戳,你应该使用 datatime 数据类型

    【讨论】:

    • (区分大小写的排序规则除外 - 没有 order by 的限制是没有意义的)
    • @Strawberry 抱歉找不到你
    • LIKE 可能有意义
    【解决方案2】:

    问题在于您需要查看 where 子句语法:

    Select * from tbl_subject   
    where SubjectName='MATH' AND  SubjectStart like '7:00 A.M' 
     AND  SubjectEnd like '8:00 A.M'  LIMIT 0, 1000
    

    【讨论】:

      【解决方案3】:

      您的查询应该是这样的

      SELECT * FROM tbl_subject WHERE SubjectName='MATH' and ( SubjectStart LIKE '7:00 A.M' or SubjectEnd LIKE '8:00 A.M')
      

      【讨论】:

        【解决方案4】:

        问题就在这里:

        SubjectName='MATH',SubjectStart LIKE '7:00 A.M',SubjectEnd
        

        可以使用ANDOR 组合多个条件,而不是使用逗号,,例如:

        SubjectName='MATH' OR SubjectStart LIKE '7:00 A.M' OR SubjectEnd
        SubjectName='MATH' AND SubjectStart LIKE '7:00 A.M' AND SubjectEnd
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-20
          • 1970-01-01
          • 2016-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多