我有一个疑问:
select *,
case when p.amount is null then '1'
else (select count(1)
from Money_paid mp
where mp.post_id = p.id and mp.user_id = :user_id limit 1)
end paid
from Posts p
where p.id = :post_id
正如您所看到的,在else部分的case .. when函数中有一个子查
mytable
id name
------- --------
1 James
2 John
3 Edward
4 Bill
上面是我的表,我正在尝试建立一个查询,它可以选择大于和小于值。例如$current_id = 3,所以我需要用一个查询从表中选择2和4。我可以获得1(小于或大于)值,但不确定如何组合查询以获得这两个值。
查询
SELECT mytable.id FROM mytable WHERE id > $current_id;
我使用这个查询从具有这些条件的表中获取数据,但是查询给了我意外的数据。这是我的SQL查询。
SELECT userCode, email, isSubscribe FROM users WHERE 1
AND (city = 'Boston' AND stateCode = '3fe5003edc0cb6c83962dbd74d35dd50' AND zipcode = '32564')
OR accountType = 'O'
OR helpMoreType = 'DI'
O
我有一个应用程序,它是用角和java制作的,我试着从数据库中获取数据。因此,我尝试在hql (hibernate)中获取数据,但对于相同的查询,在hql和sql中没有相同的结果。
这是我的sql查询:
SELECT
co.label,
sol.material_code,
sum(sol.quantity),
sol.level
FROM sales_order so
JOIN sales_order_line sol ON so.root_so_id = sol.root_so_id
JOIN customer cu ON cu.id = so.id_customer
以下查询返回
“单行子查询返回多行”
select * from sampleTable
where
status = 'A'
and (SELECT SUBSTR(some_code_column, 1, 4) from sampleTable) = 9999
我需要获取表中状态为A的所有行和带有SUBSTR(some_code_column, 1, 4) = 9999的所有行--如何更改查询,以便获取所需的结果?
我有个问题。如果我碰巧执行了一个本机查询,并且需要使用调用中的参数在其中执行If,如下所示:
case
when :var=1 then
inner join" +
primeiroInnerJoin
else " +
inner join
segundoInnerJoin
end
":var“是将在本机查询调用中出现的变量,如何检查该变量的值并根据变量的值更改查询?
我想在SQL,ex:name,age中搜索具有多个条件的name。但是,我们可能只有名称或年龄值,或者我们可能有来自用户的信息的所有价值。我在HTML中使用一个表单来获取值。如果没有填写所有文本字段,我不知道如何编写查询以进行选择。
如果我只有名称值,则查询为
SELECT * FROM stuTBL WHERE name = @name
如果我只有age值,查询是
SELECT * FROM stuTBL WHERE age = @age
如果我有所有的值,查询是
SELECT * FROM stuTBL WHERE name = @name AND age = @age
但是,什么查询将涵
如何在查询的WHERE部分使用if语句编写SQL查询?
以下是我的sql:
$sql = 'SELECT First, Second,
Third,Fifth, Status, Isik_id, Comments, Code
FROM Persons WHERE Status = 1 && Third = "'.$whoislogged.'" ORDER BY RAND() LIMIT 1';
Third = "'.$whoislogged.'"是一个来自会话的词
我正在触发下面的查询,以获得考试状态是否失败,暂停和通过。与其他查询一起出现在页面上,这样我的页面就有了大量的时间来获得负载。我已经优化了其他查询。
如何将这些查询组合起来以快速获得结果?也许所有这些查询都可以结合使用“案例时”,有人能帮我优化下面的查询吗?
SELECT COUNT(*) AS countFailMT FROM questionPaper WHERE subjectTopic like 'MT%' result=0)
SELECT COUNT(*) AS countPauseMT FROM questionPaper WHERE subjectTopic
我有一个查询,当筛选条件是
select * from table where date1 is null
但当我加上
select * from table where (date1 is null or (date1 < date2) )
然后,查询采用32秒。如何提高此查询的性能?我对日期列都有索引。
以下查询都从posts表和users表中选择数据。第一个查询使用一个联接,第二个查询没有.我的问题是你为什么要用连接?
使用联接查询:
SELECT u.*, p.* FROM users AS u
JOIN posts AS p ON p.user_id=u.user_id
WHERE u.user_id=1
查询时没有:
SELECT u.*, p.* FROM users AS u, posts AS p
WHERE p.user_id=u.user_id
AND u.user_id=1
我在读mysql ,
这是手册中的一个例子。
示例创建一个Multiple-Column Indexes,索引为(last_name,first_name)
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
手册上说这个查询将使用索引。
SELECT * FROM test
WHERE
当我写PostgreSQL WHERE子句时,条件顺序有问题吗?
假设表中ID列被索引,而name没有索引。
这两个查询是否具有相同的执行时间?
SELECT * FROM users WHERE state = 0 AND id = 3;
SELECT * FROM users WHERE id = 3 AND state = 0;
尽管有这些简单的查询。Postgres是否对复杂查询进行同样的优化?
请在回答时提供教授链接。
谢谢。
我有以下SQL结构:
SELECT * FROM (
SELECT subquery.* FROM (
SELECT some_columns
FROM some_tables
WHERE junctions_critereas
GROUP BY some_columns
UNION
SELECT some_columns
FROM some_tables
WHERE junctions_critereas
GROUP BY some_column
下午好,我刚注意到了一些事情。例如,如果我编写带有联接的mysql查询:
Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar WHERE Car="Brand"
它将归还那辆等同于“品牌”的汽车。
但我注意到,如果我以这种方式构造查询:
Select Car, Vendor from Cars JOIN Vendor On Vendor.IdCar=Car.IdCar AND Car="Brand"
它将返回与前面的查询相同的内容。注意到我用了,而不是在哪里。我还在PHP查询中
我尝试过这个查询
SELECT *
FROM `references`
WHERE
(`continent_id` IN (2,8) AND `country_id`IN (18) )
OR `continent_id` IN (2,8)
LIMIT 0 , 30
在这里,我要做的是选择那些记录,要么使用country &,要么只使用非洲大陆id,但是上面的查询总是导致记录只有大陆id,即( or continent_id IN (2,8)总是true)。
知道这个查询出了什么问题吗?
提前感谢!
我创建了一个查询,通过对子属性和父属性进行筛选,在SOLR中查找父文档。对于这个例子,我将其简化为:
{!parent which='content_type:"parent" AND field_a="value" AND field_b="value"'}((child_field_x:("VALUE" ) AND field_y:value))
只有父文档具有“content_type: parent”。SOLR只返回父文档,因此可以工作。
现在我正在创建其他字段之间的交叉点,比如field_c和field_
我有三个模型..岩壁有一个或多个CragLocations,每个CragLocation都有一个位置。我可以使用以下命令查询某个岩石子集
public List<Crag> getCragsWithGridRef() {
/**
* we want to query select c.* from crag c join CragLocation cl on c.id
* = cl.cragId join Location l on cl.locationId = l.id where
* len(l.gridR
当我使用AND和OR执行具有多个列的LIKE MySQL查询时,查询中的过滤器结果停止工作,比如by Price 0和50000。如果我从LIKE语句中去掉OR,搜索就能正常工作。如何使用LIKE语句正确地搜索多个列? 下面是一个忽略Price的none工作语句的示例 SELECT *
FROM table
WHERE Price BETWEEN 0 AND 500000
AND class_id = 1
AND TotalSqFt BETWEEN 0 AND 999999999
AND Acres BETWEEN 0 AND 999999999
A
执行以下查询需要5秒钟:
SELECT DISTINCT(Product.Name) FROM Product WHERE (0=1 OR Product.Number="prod11");
而下面的操作只需要15毫秒:
SELECT DISTINCT(Product.Name) FROM Product WHERE (Product.Number="prod11");
有趣的是,下面的代码也只需要15毫秒:
SELECT DISTINCT(Product.Name) FROM Product WHERE (1=1 AND Product.Number="
我目前正在通过PHP中的两个独立的查询来实现这一点,但我希望在一个查询中进行优化。
第一个查询..
SELECT `referrer`
FROM `tbl_traffic_log`
WHERE `domain` = 'mysite.com'
AND `referrer` != '$referringDomain'
AND CASE WHEN `clicks_in_unique`=0 THEN 2 ELSE `clicks_out_unique`/`clicks_in_unique` END < 1.4
ORDER BY RAND()
L
这与sql显示查询有关。下面的查询是工作的,问题是我必须告诉mysql我不想要的字段名,而不是我想要的字段名(这是首选的)。
例如(工作)
SHOW FIELDS FROM users WHERE Field != 'uid' AND Field != 'fk_Utype'
上面的代码执行得非常完美,从结果集中扼杀了'uid‘和'fk_Utype’。但是,当查询我只想要的列(就像传统的Select ),列出所需的列名时,行为并不像预期的那样。
SHOW FIELDS FROM users WHERE Field = 'firstName&
我不能理解我的SQL查询的输出,也不能尝试理解它。我的数据集如下
table name: my_table
assignee
--------
Mat_Bar
dan.eml
mon.gal
我的第一个简单查询
WITH rows as
(
SELECT
distinct(assignee)
FROM
my_table
WHERE
assignee NOT LIKE '%_%'
)
SELECT * FROM rows WHERE assignee = 'Mat_Bar'
上述查询按预期返回零条记录
现在,我向上面的查询添加了另
假设我在CASE...WHEN...THEN中有一个带有子查询的查询,如下所示(简化,因为我正在处理的实际查询看起来有点难):
SELECT
CASE
WHEN (subquery1) = 1
THEN (subquery2)
WHEN (subquery1) > 1 AND (subquery3) = 1
THEN (subquery4)
END
FROM foo
所有4个子查询都是依赖子查询。
是否执行了所有4个子查询?因为当我解释的时候,所有的子查询都包含在计划中。
还是只先执行subquery1,如果满足该条件,就会执行subqu
,重要的事情,
是否可以确定WHERE条件的最佳顺序以使其更快?例如,我有一个带有6个条件的查询。有些简单,有些带有子查询或函数。我的想法是对查询进行概要分析,以确定条件词是true的常见程度以及运行它的成本。
阅读示例
例如,我有:
WHERE
table.ageMin >= :ageFilter AND #1 age-more-than
table.ageMax <= :ageFilter AND #2 age-less-than
YEAR(table.date) >= :dateFilter AND #3 year