2017-08-17 29 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;