像我在Googleverse中看到的许多其他人一样,我成了File.exists?
陷阱的受害者,陷阱当然会检查您的本地文件系统,而不是您正在部署的服务器.
我找到了一个使用shell hack的结果:
if [[ -d #{shared_path}/images ]]; then ...
Run Code Online (Sandbox Code Playgroud)
但这并不适合我,除非它在Ruby方法中很好地包装.
谁有人优雅地解决了这个问题?
可能重复:
MySQL检查表是否存在而不抛出异常
我的项目中有一个动态的mysql查询构建器,它从不同的表创建选择查询.
我需要检查当前的处理表是否存在.
想象一下,我的表是table1,table2和table3.我的代码是这样的:
<?php
for($i = 1 ; $i <= 3 ; $i++) {
$this_table = 'table'.$i;
$query = mysql_query("SELECT * FROM $this_table");
// ...
}
?>
Run Code Online (Sandbox Code Playgroud)
我该如何检查(请告诉我最简单的方法).
我想知道如果列存在,我是否可以选择列的值,否则只选择null.换句话说,我想"提升"select语句来处理列不存在时的情况.
SELECT uniqueId
, columnTwo
, /*WHEN columnThree exists THEN columnThree ELSE NULL END*/ AS columnThree
FROM (subQuery) s
Run Code Online (Sandbox Code Playgroud)
请注意,我正在努力巩固我的数据模型和设计.我希望在未来几周内排除这种逻辑,但我真的想超越这个问题,因为数据模型修复比我现在要解决的更耗费时间.
另请注意,我希望能够在一个查询中执行此操作.所以我不是在寻找像这样的答案
首先检查子查询中的列.然后修改您的查询以适当地处理子查询中的列.
我有一个定义为的函数
myFun <- function(x, y, ...) {
# using exists
if (exists("z")) { print("exists z!") }
# using missing
try(if (!missing("z")) { print("z is not missing!") }, silent = TRUE)
# using get
try(if (get("z")) { print("get z!") }, silent = TRUE)
# anotherFun(...)
}
Run Code Online (Sandbox Code Playgroud)
在这个函数中,我想检查用户是否在参数列表中输入"z".我怎样才能做到这一点?我想exists("z")
,missing("z")
和get("z")
他们都不工作.
我正在努力理解与exists
Haskell类型系统相关的关键字.据我所知,默认情况下Haskell中没有这样的关键字,但是:
data Accum a = exists s. MkAccum s (a -> s -> s) (s -> a)
exists
关键字对于类型系统是不必要的,因为它可以通过forall
但我甚至不明白是什么exists
意思.
当我说,forall a . a -> Int
这意味着(在我的理解中,不正确的一个,我猜)"对于每个(类型)a
,都有一个类型的函数a -> Int
":
myF1 :: forall a . a -> Int
myF1 _ = 123
-- okay, that function (`a -> Int`) does exist for any `a`
-- because we have just defined it
Run Code Online (Sandbox Code Playgroud)
当我说exists a . a -> …
另一个标题可能是:检查是否存在多行?
使用SQL和C#的组合,如果列表中的所有产品都存在于表中,我希望方法返回true.如果它可以在SQL中完成,那将是更好的选择.我编写了一个方法,productID
使用以下SQL 返回单个是否存在:
SELECT productID FROM Products WHERE ProductID = @productID
Run Code Online (Sandbox Code Playgroud)
如果返回一行,则c#方法返回true,否则返回false.
现在我想知道我是否有产品ID清单(不是一个很大的清单,通常在20岁以下).如果所有产品ID都存在则如何编写将返回一行的查询,如果一个或多个产品ID不存在则如何不返回行?
(Maybe something involving "IN" like:
SELECT * FROM Products WHERE ProductID IN ('1', '10', '100', 'ABC'))
Run Code Online (Sandbox Code Playgroud)
编辑:
如何表达结果对我来说并不重要.无论查询返回1
or 0
,空结果集还是非空结果集,true或false都无关紧要.我更喜欢这样的答案:1)易于阅读和理解,2)高效
我想要将产品ID列表与SQL连接起来.显然,这会打开SQL注入代码(产品ID实际上是varchar
.在这种情况下,机会很小但仍然希望避免这种可能性).所以如果有办法解决这个问题会更好.使用SQL Server 2005.
产品ID是 varchar
假设我有这个表:
id | name | city
------------------
1 | n1 | c1
2 | n2 | c2
3 | n3 | c3
4 | n4 | c4
Run Code Online (Sandbox Code Playgroud)
我想检查c7
变量下是否存在值city
.
如果是的话,我会做点什么.
如果没有,我会做点别的.
所以,我有一个添加扩展属性的脚本,一些描述一个表,一些描述一个列.如何在添加扩展属性之前检查扩展属性是否存在,以便脚本不会抛出错误?
可能是一个非常愚蠢的问题,检查elasticsearch中的文档字段是否存在的最佳方法是什么?我在文档中找不到任何内容.
例如,如果此文档没有字段/键"价格",我不想在结果中返回.
{"更新":"2015/09/17 11:27:27","名称":"眼影","格式":"1.5克/0.05盎司",}
我可以做什么?
谢谢
我正在使用MySQL 5.1,我的查询大致是这样的形式:
select count(*) from mytable where a = "foo" and b = "bar";
Run Code Online (Sandbox Code Playgroud)
在我的程序中,它唯一检查的是零或非零.如果我将其转换为:
select exists(select * from mytable where a = "foo" and b = "bar");
Run Code Online (Sandbox Code Playgroud)
MySQL是否足够聪明,可以在第一次搜索时停止搜索?或者是否有其他方式与MySQL通信我的意图只是找出是否有任何记录符合这一点,我不需要一个确切的计数?
exists ×10
mysql ×3
sql ×3
php ×2
sql-server ×2
arguments ×1
boolean ×1
c# ×1
capistrano ×1
conditional ×1
document ×1
field ×1
file ×1
forall ×1
function ×1
haskell ×1
performance ×1
quantifiers ×1
r ×1
ruby ×1
select ×1