将Concat表达式与连接一起使用

时间:2016-06-18 16:53:33

标签: mysql sql

我正在尝试使用某些条件附加多个字段的名称。

这很好用:

InputStream in=getContentResolver().openInputStream(uri);

这也可行:

ParcelFileDescriptor pfd= getContentResolver().openFileDescriptor(uri,"rw");

但是,这告诉我语法错误:

select * from course
left join courseterm on course.courseID = CourseTerm.courseID
where courseterm.termID like 1 or 2
and course.expires not like '0000-00-00 00:00:00'

我无法弄清楚出了什么问题。任何人吗?

2 个答案:

答案 0 :(得分:0)

set子句必须在表之后并加入

update course
left join courseterm on course.courseID = CourseTerm.courseID
set course.title = CONCAT('2015/2016-',`Title`)
where courseterm.termID like 1 or  courseterm.termID=2 
and course.expires not like '0000-00-00 00:00:00';

答案 1 :(得分:0)

这个where条款:

where ( (courseterm.termID like 1) or
        (2 and course.expires not like '0000-00-00 00:00:00')
      )

“2”是一个被评估为“true”的整数,因此会被忽略。

这个where子句有三个主要问题:

  • 请勿将like用于数字和字符串。
  • 使用括号表示布尔表达式。
  • 使用in对同一字段进行多次相等比较。

因此,将逻辑正确写为:

where (courseterm.termID in (1, 2)
       course.expires <> '0000-00-00 00:00:00')
      )

这应该可以解决您后续的问题。