MYSQL - 基于动态值进行选择

时间:2013-04-29 21:31:21

标签: mysql dynamic varchar

我正在寻找一种基于另一列数据在一列中选择内容的方法。我有2张桌子:

input_table - has a column called "year_of_birth"
result_table - has a column called "notes" 

你知道,“notes”列可能包含一年,比如“1980”。我需要能够选择notes字段包含与year_of_birth字段匹配的行。到目前为止,我的声明写得像这样:

select inp.year_of_birth, res.notes, res.result
from order_input inp join order_result res on inp.order_id = res.order_id 
where res.result !='no match'
and res.notes like '%' + inp.year_of_birth + '%'

现在我得到一个错误,说“将varchar值'%'转换为数据类型int时转换失败。我不确定我做错了什么因为我有一个类似的声明我正在使用在其中有这种类型的字符串... ...

2 个答案:

答案 0 :(得分:2)

您需要使用CONCAT代替+

res.notes like CONCAT('%', inp.year_of_birth, '%')

答案 1 :(得分:0)

试试这个:

select inp.year_of_birth, res.notes, res.result from order_input as inp join order_resultas res on inp.order_id = res.order_id where res.result <> 'no match' and res.notes like CONCAT('%', inp.year_of_birth, '%')