2017-08-17 13 views
0

我試圖獲取並檢查xml文檔中的某些屬性值。 標籤:使用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') 

但它無法正常工作。

+1

什麼數據庫系統,您使用的作品呢? –

回答

0

如果你正在使用MySQL,你可以使用extractValue一起

喜歡的東西

ExtractValue(c.varBody, '//СведТов/@ОКЕИ_Тов') 

create table foo(varBody text); 
insert into foo (varBody) values 
(
    '<СведТов НомСтр="" НаимТов="" ОКЕИ_Тов="7966" КолТов="" ЦенаТов="" СтТовБезНДС="" НалСт="" СтТовУчНал=""> 
</СведТов> ' 
); 

SELECT ExtractValue(varBody, '//СведТов/@ОКЕИ_Тов') 
from foo;