[英]check value in xml tag with sql
我正在嘗試獲取並檢查xml文檔中的某些屬性值。 標簽:
<СведТов НомСтр="" НаимТов="" ОКЕИ_Тов="7966" КолТов="" ЦенаТов="" СтТовБезНДС="" НалСт="" СтТовУчНал="">
</СведТов>
接下來,我嘗試了:
SELECT *
FROM table1 a
LEFT JOIN table2 as b ON a.intDocID=b.intDocID
LEFT JOIN table3 as c ON a.intDocID = c.intOneDocID
WHERE SUBSTRING_INDEX(SUBSTRING_INDEX( CONVERT( c.varBody USING cp1251 ) , 'ОКЕИ_Тов="', -1), '"', 1) > 999 and
SUBSTRING_INDEX(SUBSTRING_INDEX( CONVERT( c.varBody USING cp1251 ) , 'ОКЕИ_Тов="', -1), '"', 1) < 10000 and
a.intSendTimestamp < UNIX_TIMESTAMP('2017-08-11 23:59:59')
但這不起作用。
如果您使用的是mysql,則可以使用EXTRACTVALUE
就像是
ExtractValue(c.varBody, '//СведТов/@ОКЕИ_Тов')
無論如何這有效
create table foo(varBody text);
insert into foo (varBody) values
(
'<СведТов НомСтр="" НаимТов="" ОКЕИ_Тов="7966" КолТов="" ЦенаТов="" СтТовБезНДС="" НалСт="" СтТовУчНал="">
</СведТов> '
);
SELECT ExtractValue(varBody, '//СведТов/@ОКЕИ_Тов')
from foo;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.