这是我正在做的工作的一个非常简化的版本,但希望它能传达我的观点。
我有一个 mysql 表,看起来像这样:
CREATE TABLE Table1(
ID INT AUTO_INCREMENT,
Val VARCHAR(50),
PRIMARY KEY (id)
);
INSERT INTO Table1 (Val) SELECT "Reference.Int('ABCD')";
INSERT INTO Table1 (Val) SELECT "Reference.Str('EFG','ABC')";
INSERT INTO Table1 (Val) SELECT "Reference.Int('HIJ','EFG','ABC')";
我正在处理的方法接收方括号中的值之一作为参数,例如:“EFG”。我是否可以获取表中包含此值的所有行。我知道如果我做类似的事情:
SELECT * from Table1 where Val LIKE "%EFG%"
我可以获得正确的值,我的问题是我需要更具体,因为例如其中一个值可能类似于:
Reference.Int('ABCD') + EFGX/200
或
EFG + anything else
这意味着我还需要以某种方式包括这些部分:“Reference.Str()”。我真的不关心括号中的任何其他内容,我唯一关心的是获取包含我收到的参数值的那些。
我想知道这是否可以通过使用 REGEXP 来解决,但我对此的了解充其量是薄弱的。
感谢任何帮助。
最佳答案
您可以使用正则表达式,但没有必要。只需在搜索词中包含围绕您的值(value)观的引号:
select ...
where val like '%\'EFG\'%'
关于java - 选择包含的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819668/