oracle sql中的运算符“LIKE”和“IN”有什么区别?
4 回答
0
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 回答