如果我在Python中创建自己的类,我应该定义什么函数以允许使用'in'运算符,例如
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
Run Code Online (Sandbox Code Playgroud) 在SQL中,您可以使用以下语法:
SELECT *
FROM MY_TABLE
WHERE VALUE_1 IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
C#中有等价物吗?IDE似乎将"in"识别为关键字,但我似乎无法在其上找到任何信息.
那么,是否可以执行以下操作:
int myValue = 1;
if (myValue in (1, 2, 3))
// Do something
Run Code Online (Sandbox Code Playgroud)
代替
int myValue = 1;
if (myValue == 1 || myValue == 2 || myValue == 3)
// Do something
Run Code Online (Sandbox Code Playgroud) 当我们使用等号和IN运算符具有相同的值时,SQL引擎有何不同?执行时间是否会改变?
第一个使用等式检查操作符
WHERE column_value = 'All'
Run Code Online (Sandbox Code Playgroud)
第二个使用OR运算符和单值
WHERE column_value IN ('All')
Run Code Online (Sandbox Code Playgroud)
请问SQL引擎更改IN
到=
如果只有一个值吗?
在MySQL和PostgreSQL中有相同的差异吗?
为什么Javascript中的"in"运算符在测试时是否返回true,如果数组中存在"0",即使数组似乎不包含"0"?
例如,这返回true,并且有意义:
var x = [1,2];
1 in x; // true
Run Code Online (Sandbox Code Playgroud)
这返回false,并且有意义:
var x = [1,2];
3 in x; // false
Run Code Online (Sandbox Code Playgroud)
但是这会返回true,我不明白为什么:
var x = [1,2];
0 in x;
Run Code Online (Sandbox Code Playgroud) 我有和两个值的数组,我想在选择查询中使用它与sql IN运算符.
这是我桌子的结构
id comp_id
1 2
2 3
3 1
Run Code Online (Sandbox Code Playgroud)
我有一个$arr
有两个值的数组Array ( [0] => 1 [1] => 2 )
我想获取comp_id 1和comp_id 2的记录.所以我编写了以下查询.
SELECT * from table Where comp_id IN ($arr)
Run Code Online (Sandbox Code Playgroud)
但它不会返回结果.
对于百万分之一的时间,我本来希望IN
在Java中使用运算符,类似于IN
SQL中的运算符.它可以作为编译器语法糖实现.所以这
if (value in (a, b, c)) {
}
else if (value in (d, e)) {
}
Run Code Online (Sandbox Code Playgroud)
......真的很棒.事实上,上面的内容与这里相当冗长(并且不适用于原语)的构造相同:
if (Arrays.asList(a, b, c).contains(value)) {
}
else if (Arrays.asList(d, e).contains(value)) {
}
Run Code Online (Sandbox Code Playgroud)
或者这样的int
,long
和类似的形式:
switch (value) {
case a:
case b:
case c:
// ..
break;
case d:
case e:
// ..
break;
}
Run Code Online (Sandbox Code Playgroud)
或者可能有更高效的实现.
这样的东西会成为Java 8的一部分吗?如果没有,我怎么能提出这样的建议呢?或者,我现在可以使用任何等效的构造吗?
如何实现:
if X in (1,2,3) then
Run Code Online (Sandbox Code Playgroud)
代替:
if x=1 or x=2 or x=3 then
Run Code Online (Sandbox Code Playgroud)
换句话说,如何才能最好地模仿IN
VBA中的运算符for excel?
我有一个临时表,想要检查一个where子句,在临时表中包含某个id/string.
Select...
WHERE MyId IN MyTempTable
Run Code Online (Sandbox Code Playgroud)
我在MS SQL Management Studio中遇到一般错误.
是"In"运算符不适合临时表?
我们正在尝试为本机sql查询动态生成IN子句以返回JPA实体.Hibernate是我们的JPA提供者.我们的代码看起来像这样.
@NamedQuery(
name="fooQuery",
queryString="select f from Foo f where f.status in (?1)"
)
....
Query q = entityManager.createNamedQuery("fooQuery");
q.setParameter(1, "('NEW','OLD')");
return q.getResultList();
Run Code Online (Sandbox Code Playgroud)
这不起作用,in子句不识别通过这种方式传递的任何值.有谁知道这个问题的解决方案?
在不同的情况下,Groovy"in"运算符似乎意味着不同的东西.有时x in y
意味着y.contains(x)
,有时它似乎打电话y.isCase(x)
.
Groovy如何知道要调用哪一个?是否有一个特定的类或一组类Groovy知道哪些使用.contains方法?或者是由于某个对象上存在方法而触发的行为?是否有任何情况下in运算符完全变为其他东西?
in-operator ×10
operators ×4
sql ×4
arrays ×2
c# ×1
excel ×1
excel-vba ×1
groovy ×1
hibernate ×1
java ×1
javascript ×1
jls ×1
jpa ×1
mysql ×1
php ×1
postgresql ×1
python ×1
sql-in ×1
sql-server ×1
temp-tables ×1
vba ×1
where ×1