我有一个SQL查询,如:
(u.user_contact_no LIKE " + "%" + ContactNo + "%" + " or u.user_contact_no IS NULL" + " or u.user_contact_no = " + ")
它返回,
(u.user_contact_no %9876543210% or u.user_contact_no IS NULL or u.user_contact_no = )
但期望像
(u.user_contact_no LIKE "%9876543210%" or u.user_contact_no IS NULL or u.user_contact_no = "")
请告诉我,如何重写我的查询?
假设您正在查询SQL Server:您需要使用单引号字符并转义要包含在您似乎正在构建的查询字符串中的单引号。
declare @ContactNo varchar(10) = '9876543210'
declare @sql varchar(max) = 'select... from... where... and (u.user_contact_no LIKE ''%' + @ContactNo + '%'' or ISNULL(u.user_contact_no,'''') = '''')'
select @sql
退货
select... from... where... and (u.user_contact_no LIKE '%9876543210%' or ISNULL(u.user_contact_no,'') = '')
因此,要在SQL字符串中创建一个空字符串文字,您需要对两个单引号进行转义,从而最终得到四个单引号字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句