实际应用:复选框的数据库记录如何查询,以'1#12#15#2#3#5'保存形式为例

instr()截取字符位置,只能取单字符 如果想取如12,11....2个数字组成的,要求加#或别的特殊字符,用于数据库表存入的字段值以#分割。一般用于实际情况为,复选框的值在数据库中的存入

select instr('12','1') from dual   结果:1

select instr('21','1') from dual   结果:2

select instr('#12#','#1#') from dual   结果:0

sign( number )  number 要测试标志的数字.

If number < 0, then sign returns -1.
If number = 0, then sign returns 0.
If number > 0, then sign returns 1.

实际用例: select * from A where sign(instr('#'||A.ss||'#','#2#'))='1'

数据库表A里存有ss字段,以'1#12#15#2#3#5'形式保存,需要查找 值为2的数字的一条记录。

实际情况:复选框值是 分别对应 1 12 15 2 3 5 的值。存入数据库的形式是'1#12#15#2#3#5' 现在需要查找 勾选了 值为2对应复选框的记录,就可以用上述方法查询

 

你可能感兴趣的:(oracle,sql)