0

oracle sql中的运算符“LIKE”和“IN”有什么区别?

4

4 回答 4

0

LIKE运算符用于简单的字符串模式匹配。例如:

SELECT column1 FROM table1 WHERE string_column LIKE 'ABC%';

IN运算符检查值列表中的匹配项。例如:

SELECT column1 FROM table1 WHERE string_column IN ('This', 'That');
SELECT column1 FROM table1 WHERE fk_column IN (SELECT id FROM table2);

如需更多阅读,这里是LIKE文档和 IN的文档。

于 2020-02-13T15:31:39.720 回答
0

IN语句创建一系列 OR 语句,如

SELECT * FROM table WHERE column IN (a, b, c) 

-- Which also means

SELECT * FROM table WHERE column = a OR column = b OR column = c

使用LIKE时,我们正在寻找相似之处:

SELECT * FROM table WHERE column LIKE '%Text%'

就像你可以操纵语句以适应许多场景,即w3 学校

SELECT * FROM table WHERE column LIKE '%Text%' --Finds any values that has Text
SELECT * FROM table WHERE column LIKE 'Text%'  --Finds any values that start with Text
SELECT * FROM table WHERE column LIKE '%Text'  --Finds any values that ends with Text

这个问题的答案很广泛,取决于用例。如果你想出一个用例就更好了。

于 2020-02-13T15:38:24.240 回答
0
select * from t where col like '%MATCH_1%';

选择该列包含“MATCH”的所有行,然后是任何字符,然后是“1”。

select * from t where col like 'PREFIX%';

选择列具有前缀“PREFIX”的所有行。

select * from t where col like '%APPENDIX';

选择列以“APPENDIX”结尾的所有行。

select * from t where col IN (1,10,20);

选择列具有列表中值之一的所有行。列表不能为空。

所以 IN 运算符与 LIKE 完全不同。

于 2020-02-13T15:36:26.113 回答
0

如果您使用 LIKE,则使用 PATTERN,用于获取选择的数据:

SELECT salary 
FROM employees
WHERE last_name LIKE 'R%';

如果您是 IN,您可以定义一个 LIST OF VALUES,用于获取数据:

SELECT salary 
FROM employees
WHERE last_name in ( 'Richard', 'Richardson)';

亲切的问候

于 2020-02-13T15:44:26.660 回答