0
我有以下查詢:如何將文字「?」在MySQL查詢與綁定變量
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。上面的查詢工作。副作用是代碼值不能以「<」開頭,這應該是可以接受的,但順序會將其誤認爲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陣列不匹配?」 MySQL錯誤。看來,這個?在<?xml
裏面被誤認爲綁定目標。我傳遞了兩個值來加以約束 - 這又是正確的。
所以我的問題是 - 我怎麼得到<?xml
文字不會被誤認爲綁定值的目標?
您是否嘗試用反斜槓轉義問號? – deadly
是的,我試過'<\?xml',仍然有上面的錯誤。 – TJChambers
引號內的問號不應被解釋爲佔位符。你在用什麼語言工作,你如何準備這份聲明? –