java - Oracle SQL 在由逗号分隔的许多值组成的一列中选择特定值

标签 java sql oracle grails

我有一个包含 2 列名称和包的表。 package 的一个示例值是“BGA,BGA DUAL DIE,QFP,QFP DUAL DIE”。

enter image description here

我如何做一个 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(,|$)' )

关于java - Oracle SQL 在由逗号分隔的许多值组成的一列中选择特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36326754/

相关文章:

java - 回顾这个使用基于密码的加密的 AES-128 CBC 示例

Java - 更改 JTable 中某些单元格的颜色

java - 是否有正则表达式可以防止输入 Javascript?

sql - 重叠区间的总长度

mysql - 如何创建与 Fusion Tables "summarize"函数等效的 MySQL 查询?

oracle - 如何在一个选择查询中使用 Oracle 和 PostgreSQL 查询

Oracle PL/SQL : How to write a loop in order to print all the components of a variable of Oracle customized type?

java - 使用 Mysql 数据库的搜索结果刷新 Jtable?

mysql - 有没有复杂的select查询来解决这个问题

php - Yii2 ActiveRecord 设置未知属性 : app\models\