Heim >Datenbank >MySQL-Tutorial >如何筛选SQL字符串字段中部分值

如何筛选SQL字符串字段中部分值

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:17:262368Durchsuche

如果需要筛选SQL字符串字段中部分值,应该怎么做呢?下面就教您筛选SQL字符串字段中部分值的记录的方法,供您参考。 例如有一个KKBH(卡口编号)字段,这是一个字典字段(对应另一个实体表(卡口表)的编号字段)。这个字段的值保存所属卡口值域{01,02,03}

如果需要筛选SQL字符串字段中部分值,应该怎么做呢?下面就教您筛选SQL字符串字段中部分值的记录的方法,供您参考。

例如有一个KKBH(卡口编号)字段,这是一个字典字段(对应另一个实体表(卡口表)的编号字段)。这个字段的值保存所属卡口值域{01,02,03}

本来想到的是通过or来实现,这样需要动态生成SQL语句。

后来想到一个办法用charindex搜索SQL字符串的办法。将所有的要查的卡口编号组成类似'01@02'这样待查字符串。sql查询时通过charindex筛选出在待查SQL字符串里有的KKBH的记录。

经测试使用or与使用charindex,两者在MSSQL中执行效率差不多。

具体实现:

用户界面查询需求:可能搜索N个卡口的记录(N的值域{1,所有卡口个数})。设计这个UI的形式一共三种:

一、一个多选listbox。用户界面运行时将卡口字典表载入listbox信息。

二、两个listbox,左边为待选,右边为已选,中间加两个按钮添加与删除。用户界面运行时将卡都字典表载入左边的listbox。

三、多个Checkbox。可以在界面设计阶段直接做死字典表,即有几个卡口就话几个checkbox。或者在程序运行根据字典表绘制动态绘制checkbox。

UI的优缺点这里不讨论,我这里选择第三种方式的动态绘制。

在查询阶段根据所选卡口生成待选SQL字符串入:"01@02”

并将此条件传回后台查询服务程序

后台查询服务里只要待查SQL字符串作为参数传入查询的SQL语句中(sql片段): charindex(卡口编号,@待查字符串)。当然也可以手动生成SQL方式传入"charindex(卡口编号,'"+待查字符串+"')".

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn