小编tvC*_*vCa的帖子

第二个SELECT查询,如果第一个SELECT返回0行

我正在尝试加速PHP脚本,我目前在Mysql域中推送一些PHP逻辑.如果第一个Select没有返回任何行,或者计数为零,是否有办法生成不同的选择查询?

请记住,第一个查询需要先运行,第二个查询只有在第一个查询返回空集时才会被激活.

SELECT * FROM proxies WHERE (A='B') || SELECT * FROM proxies WHERE (A='C')
Run Code Online (Sandbox Code Playgroud)

对于上面的2个查询,我有这个代码,但它似乎运行每个查询两次(一次计数,一次返回).有一个更好的方法吗?

IF (SELECT count(*) FROM proxies WHERE A='B')>0
    THEN SELECT * FROM proxies WHERE A='B'
ELSEIF (SELECT count(*) FROM proxies WHERE A='C')>0
    THEN SELECT * FROM proxies WHERE A='C'
END IF
Run Code Online (Sandbox Code Playgroud)

mysql sql

12
推荐指数
2
解决办法
2万
查看次数

为什么"哪个cp | ls -l"不是"ls -l $(哪个cp)"?

根据Linux中的管道方法,第一个命令的输出应该被视为第二个命令的输入.因此,当我这样做时which cp | ls -l,应将其视为ls -l $(which cp)

但输出显示其他东西.

为什么这样 ?

linux bash command-line ls pipe

4
推荐指数
1
解决办法
208
查看次数

标识符必须声明为ORA-06550和PLS-00201

我有两个数据库;一个在本地服务器中;

Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
"CORE   11.1.0.7.0  Production"
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
Run Code Online (Sandbox Code Playgroud)

另一个是VM:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE   11.2.0.4.0  Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Run Code Online (Sandbox Code Playgroud)

这些服务器的其他所有内容都是相同的。我是两台服务器的DBA。所有表和存储过程都可以在两个数据库中正常工作,但是当Asp.net尝试连接到它时,一个存储过程无法正常工作。

当我运行连接到VM数据库的Asp.net应用程序时,出现以下错误,告诉我必须声明存储过程:

Message: Sys.WebForms.PageRequestManagerServerErrorException: ORA-06550: line 1, column 7: PLS-00201: identifier 'GETINFO' must be declared …

c# sql asp.net oracle11g oracle-sqldeveloper

3
推荐指数
2
解决办法
2万
查看次数

在Oracle DB中获取数据太慢(查询比较)

我遇到了以下问题:我有一个超过1,000,000,000个数据的表.现在我运行以下查询(acc_no是主键):

select acc_no from user where acc_no between 753976276998100 and 78776276998199
Run Code Online (Sandbox Code Playgroud)

上述查询在不到一秒的时间内运行并获取了100,000条记录

但是如果我在同一个查询中再添加一列("service_no"),

select acc_no,service_no from user where acc_no between 753976276998100 and 78776276998199
Run Code Online (Sandbox Code Playgroud)

..这花了一分多钟.这是为什么?为什么第一个查询花了不到一秒钟,第二个查询花了不到一分钟?

仅供参考:service_no是一个NUMBER列

oracle

1
推荐指数
1
解决办法
2618
查看次数

标签 统计

sql ×2

asp.net ×1

bash ×1

c# ×1

command-line ×1

linux ×1

ls ×1

mysql ×1

oracle ×1

oracle-sqldeveloper ×1

oracle11g ×1

pipe ×1