0

私を衒学者と呼んでくださいが、これらすべてのチェックを組み合わせるよりエレガントな方法はありますか?

SELECT * FROM [TABLE1] 
WHERE [path] = 'RECEIVE' 
AND [src_ip] NOT LIKE '10.48.20.10' 
AND [src_ip] NOT LIKE '0.%' 
AND [src_ip] NOT LIKE '127.%' 
ORDER BY [date],[time] DESC; 

このようなものに:

SELECT * FROM [TABLE1] 
WHERE [path] = 'RECEIVE' 
AND [src_ip] NOT LIKE IN ('10.48.20.10','0.%','127.%', .... ) 
ORDER BY [date],[time] DESC; 
4

2 に答える 2

0

正規表現を使用できます。MySQLでは、次のようになります

select * from [TABLE1]
where [path] = 'RECEIVE'
and [src_ip] not regexp '^(10\\.48\\.20\\.10$|0\\.|127\\.)'
order by [date], [time] desc

Oracleでは、次のようなものかもしれません

select * from [TABLE1]
where [path] = 'RECEIVE'
and not regexp_like([src_ip], '^(10\.48\.20\.10$|0\.|127\.)')
order by [date], [time] desc
于 2013-10-17T14:18:20.247 に答える