У меня есть инструкция MySQL, которая пытается найти, если идентификатор строки (CHAR(36)
) находится внутри строки.Использование Like и Concat с Char Type
Мое утверждение:
select * from `options`
where concat('%',`OptionID`,'%')
like '{\"4d519a3d-c99b-11e4-8eda-b8ca3a83b4c8\":\"62.50\"}';
Но это не удается, и не возвращает ничего, в то время как это
select * from `options` where
`OptionID`='4d519a3d-c99b-11e4-8eda-b8ca3a83b4c8';
работает и возвращает свою строку. Я думал, что это произошло потому, что поле ID было CHAR
поля вместо VARCHAR
поля, поэтому я попытался это вместо
select * from `options` where
concat('%',cast(`OptionID` as char(38)) ,'%')
like '{\"4d519a3d-c99b-11e4-8eda-b8ca3a83b4c8\":\"62.50\"}';
Но что до сих пор не работает, и теперь я потерял. Я хотел бы избежать переборе строки JSON и создания набора условий, как
(`OptionID`={$JsonKey[0]} OR `OptionID`={$JsonKey[1]} OR ...)
Поскольку эти строки JSON можно получить очень большой, но если это лучший вариант из-за работы или то, что я пытаюсь делать нельзя, иначе я просто сделаю это именно так.
Глупый меня, я должен был знать, что. Благодаря! –