我有以下查询:
select subclasses.id,participants_subclasses.participant_id
from subclasses
left outer join participants_subclasses on
participants_subclasses.participant_id = ?
and subclasses.id = participants_subclasses.subclass_id
where
subclasses.classification_id = ?
and subclasses.showhover
order by subclasses.seq,
IF(LEFT(subclasses.code, 1) = '<',
Extractvalue(subclasses.code, "//texts/text/content"),
subclasses.code)
上面的查询正在处理一个表,其中代码列有时包含文本,有时在标记内包含带有文本的 XML。上述查询有效。副作用是代码值不能以“<”开头,这应该是可以接受的,但 order by 会将其误认为是 XML 内容。下面的查询将更加具体和准确:
select subclasses.id,participants_subclasses.participant_id
from subclasses
left outer join participants_subclasses on
participants_subclasses.participant_id = ?
and subclasses.id = participants_subclasses.subclass_id
where
subclasses.classification_id = ?
and subclasses.showhover
order by subclasses.seq,
IF(LEFT(subclasses.code, 5) = '<?xml',
Extractvalue(subclasses.code, "//texts/text/content"),
subclasses.code)
但是,这种检查内容中 XML 标头的变体失败并显示“NameInput Array 不匹配?” MySQL 中的错误。看来? 内部<?xml
文字被误认为是绑定目标。我正在传递 2 个要绑定的值 - 这又是正确的。
所以我的问题是 - 我如何让<?xml
文字不会被误认为是绑定值目标???