我使用的是Oracle 11g,任何帮助都会很棒
我有一张表如下
IDS
-----------
1
1,2
1,2,4
1,2,5
1,2,6
1,3,7
1,3,8
1,3,9
我需要返回包含给定值的所有行
因此,对于值2,将返回以下内容
1,2
1,2,4
1,2,5
1,2,6
非常感谢提前
答案 0 :(得分:2)
虽然我不建议存储以逗号分隔的列表,但这里有server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl-certs/a.cert;
ssl_certificate_key /etc/nginx/ssl-certs/a.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_client_certificate /etc/nginx/ssl-certs/ca.pem;
ssl_verify_client on;
location /location1 {
[..]
}
}
server {
listen 444;
ssl on;
ssl_certificate /etc/nginx/ssl-certs/a.cert;
ssl_certificate_key /etc/nginx/ssl-certs/a.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_client off;
location /location2 {
[..]
}
}
使用concat
的一个选项:
like
修改 - 由于您使用的是select *
from yourtable
where concat(concat(',', ids), ',') like '%,2,%'
,因此您需要使用多个oracle
语句...
答案 1 :(得分:1)
将逗号分隔列表中的ID存储起来是个坏主意,原因有很多:
也就是说,有时候我们会遇到其他人不好的设计决定。您可以使用like
:
select t*
from t
where ',' || ids || ',' like '%,2,%';