MYSQL 操作数错误我不明白

MYSQL Operand Error I don't understand

该网站的新手,但我有一个查询的快照,但我无法理解为什么。

type 5 is a call, type 0 is a note (but could be a call due to record keeping) so I'm trying to find = type 5 or (type 0 where the clients name is within the note).

以下是失败的部分

AND (ct.tpe = 5 OR (ct.tpe = 0 AND ct.smmry LIKE ('%', c.frstnme1 ,'%')))

如果我将 c.frstnme1 替换为该字段中的实际名称,则此方法有效,但它不适用于 c.frstnme1 中的信息请求。我不明白这一点,因为 c.frstnme1 中只能有一项信息,而 table 已经链接为“FROM c, ct WHERE ct.cse = c.id”,所以它不应该先尝试寻找其他信息名字。但它再次适用于完全相同的查询,但使用的是实际输入的名称。请帮忙!

谢谢 威尔

您缺少 concat() like 模式:

AND (ct.tpe = 5 OR (ct.tpe = 0 AND ct.smmry LIKE CONCAT('%', c.frstnme1, '%')))

出现奇怪的错误是因为 , 在您拥有它的上下文中是不允许的。

您需要做的是在查询中使用 MySQL Concat 函数。

AND (ct.tpe = 5 OR (ct.tpe = 0 AND ct.smmry LIKE CONCAT('%', c.frstnme1 ,'%')))

它失败了,因为您没有指定要将字符串与列连接起来。当您将其替换为实际名称时它会起作用,因为您随后正在查询:

AND (ct.tpe = 5 OR (ct.tpe = 0 AND ct.smmry LIKE ('%ACTUAL NAME%')))

当我们在条件中使用 like 时,我们需要在 "concat" 函数中保留比较字符串或其他内容。

谢谢。