我有一个带有2列名称和数据包的表。包的一个示例值是“BGA,BGA DUAL DIE,QFP,QFP DUAL DIE”。
我如何做一个SQL,它可以准确选择我输入的程序包名称。
假设对于我的部分代码,bd.pkg的输入为“BGA”
def generateBdHistoryTable(ApprovalHeader ah,BondingDiagram bd){
if(bd.pkg!=null){
String kitTypeHolder;
def kitTypeMap = [:];
List kitTypeLists = KitType.executeQuery("select name from KitType where (packages like '"+bd.pkg+"%' or packages like '%,"+bd.pkg+"%')");
结果是针对包含以下内容的行
BGA
BGA DUAL DIE
我只希望输入为“BGA”时得到包“BGA”的名称,输入为“BGA DUAL DIE”时得到包的名称,以此类推。我应该如何查询这种情况?
最佳答案
select name
from KitType
where ','||packages||',' like '%,BGA,%'
或使用正则表达式:
select name
from KitType
where REGEXP_LIKE( packages, '(^|,)BGA(,|$)' )