簡體   English   中英

使用sql檢查xml標記中的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM