我是卡桑德拉的新手。我希望在一个具有复合主键的表中同时对多个行进行编程(QueryBuilder)查询。
类似于:
假设在TABLE PRIMARY KEY(key1,key2)中
Select * from TABLE where (key1=a AND key2=b) OR (key1=c AND key2=d)
提前谢谢。
阿尔托伯
我想做的是索引一个人的名字和出生日期。
这张桌子的排列方式如下:
CREATE TABLE test
(
id INT NOT NULL AUTO_INCREMENT,
fname VARCHAR(10) NOT NULL,
sname VARCHAR(10) NOT NULL,
age INT NOT NULL,
born DATETIME NOT NULL,
PRIMARY KEY(id),
INDEX name_age(fname, sname, age),
INDEX name_date(fname, born)
)
但是,在where语句中没有识别该索引,如:
my
我正在尝试为每个应用程序(app_id)获取第一个app_id条目。
图像表有2列(app_id、src)。
两种解决方案:-使用MIN。-使用LIKE。
我有以下两个查询,我想知道哪一个执行得更快,还是它们都是等价的?
我应该使用不同的度量或功能吗?
查询
MIN与分组
EXPLAIN
SELECT app_id,
min(src)
FROM image
GROUP BY app_id ;
类
EXPLAIN
SELECT app_id,
i.src
FROM image i
WHERE i.src LIKE '%.0.jpg';
结果:
mysq
SELECT name, LEVENSHTEIN_RATIO(name, 'variablethings') as percent
FROM from my_table
order by percent desc
my_table有一百万个数据。
此查询太长,因为“百分比”列是别名。是否可以在此查询中对别名列进行索引?或者解决这个问题的其他方法?
CREATE TYPE o_A AS OBJECT (A1 VARCHAR2 (4000));
CREATE OR REPLACE TYPE t_A IS TABLE OF o_A;
CREATE TABLE table_o_A
(
oA_id INTEGER GENERATED BY DEFAULT AS IDENTITY,
oA o_A,
PRIMARY KEY (oA_id)
);
我要在t_A中添加table_oA行。
CREATE PROCEDURE aa (query_
为"t.name“添加索引会更快吗?创建临时表"x“时是否会保留"t.name”的索引?
SELECT x.id
FROM
(SELECT t.name FROM t WHERE id_group=1 LIMIT 2000) AS x
WHERE x.name LIKE 'a%' LIMIT 0,12
全
我正在尝试使用PostgreSQL中的dblink在不同的数据库上运行查询。如果表"user“在公共模式下,则执行以下操作:
select * from dblink(
'hostaddr=1.2.3.4 port=5434 dbname=dbname user=username password=password',
'select id from user')
as t1(
id bigint
);
但是,我需要在其他一些已定义的模式上运行查询。有人知道如何在上面的查询中添加模式信息吗?我不能从PostgreSQL文档
我需要一些SQL Server锁的帮助,因为我很难理解它们是如何工作的。这项工作很简单。我可能有两个订单同时进来,或者是瞬间的差异,试图分配手头的一定数量的库存。该查询获取已创建的订单详细信息记录,并使用在足够库存中订购的数量更新该记录。如果第二个订单来自相同的产品请求,我希望能够做的是,它不应该过度分配,基本上它应该检查IOH减去已经分配的订单。所以我想要防止二次指令对第一次指令的影响,以及双重分配。
我已经尝试创建了两个简单的事务,其中一个延迟运行,以查看另一个是否等待第一个事务的提交。第二个超时。
-- QOH IS ASSUMED TO BE 100
-- THIS IS THE
如何在存储过程中使用WITH?
CREATE OR REPLACE PROCEDURE TEST_CSV(
CUR_USERS OUT SYS_REFCURSOR,
CUR_JOBS OUT SYS_REFCURSOR )
AS
BEGIN
WITH resultset2 AS
(SELECT U.USERID,
U.PASSWORD
FROM USERS U
WHERE TRUNC(DATECREATED)=TRUNC(SYSDATE-1)
)
SELECT RESULTS
关于如何评估create view和select ... from viewname,我有一个--也许很简单--的问题。我知道如何创建视图和使用它们,但我必须解释这两个命令的过程图形化和文字为我的学校。
嗯,我做了以下工作(我现在使用的是2012,但这不重要,对吗?)我也想知道MySQL的情况,如果有差异的话):
-- create a Schema for the test
create schema TEMP
go
-- create the view
create view TEMP.VLT as
select LNR,TNR,MENGE
from LTP.LTP
go
-- sel
我希望有一个错误陷阱,如果数据已经存在,就不会插入到表中。我有这段代码,但不起作用。
INSERT IGNORE INTO staging_table (playlist_id,terminal_id,userid) VALUES
(
(SELECT playlist_id FROM playlist_terminal WHERE playlist_id = i_playlistid),
(SELECT terminal_id FROM playlist_terminal WHERE playlist_id = i_playlistid),
(SELECT userid FROM pl
如何使我的索引工作时,我使用之间的命令查询?
当我解释这个问题时:
explain select * from table where Date between date1 and date2;
返回的实际键是NULL,在这种情况下如何使用我的索引?
我从MYSQL上读过一些文档,他们说这里应该使用BTree索引,以便<或在查询之间使用,但是在我的例子中它不起作用。
请帮帮忙
编辑
explain select * from table where Date between '2010-05-10 00:00:00' and '2010-06-10 00:00:
目前,我有一个MYSQL查询正在执行中。我需要在查询中的两个字段上创建索引:cancel和complete。执行此操作的最佳方法是什么? SELECT* FROM table WHERE cancel != 'CANCEL' AND complete IN ('COMPLETE','TAKEN_BACK')
我有一个包含数百万个股票数据的数据库,每个数据都在分钟数据中,所以我想用sql查询将这些数据转换为每小时的数据。我为每个点提供的特性是:打开、关闭、高、低、量、时间。
我对解决方案的直觉是,数据应该按时间划分为60块。打开和关闭是分割数据中的第一个和最后一个。高和低是最大和最小,体积是和。这应该会创建一个新的点--应该相当于每小时的数据。
这在代码中非常简单,只需几秒钟,但我想用sql来完成。
我设法使查询工作,但它是非常缓慢的。在这里,我创建了一个分组查询,返回带有新id的数据,我稍后将这些点分组在该id上,标识符就是我正在查询的公司。
with grouped as (select
在Oracle 这里之后,我试图对一个包含近100万行的表进行分页。
问题是,在一天结束时,当表有数百万行时,性能就会变差。Oracle (快速全索引扫描)所使用的索引似乎没有考虑排序索引,因此整个数据正在重新排序。
例如:
create table sample1(
id int primary key,
c1 varchar2(3000) not null,
c2 varchar2(3000) not null,
c3 varchar2(10));
create unique index index_unique3 on samp
我使用下面的查询已经有一段时间了,但是随着结果数据库的增长,它已经变得很慢,以至于无法使用。有没有人能推荐一种替代方法呢?
我有c.name和r.scope的全文索引
SELECT * FROM results r
INNER JOIN categories c on r.id = c.result_id
INNER JOIN tags t on r.id = t.result_id
WHERE c.name in ('purchase', 'single_family', 'other')
在我的网络应用程序中,我制作了一个内部消息传递系统。我想在每个页面上放置一个“先前”和“下一个”链接(用户在其中查看消息)。
为了获得下一个和前一个id,我执行两个查询:
关于前一项:
SELECT id FROM pages WHERE (id<$requestedPageId) ORDER BY id DESC LIMIT 1
至于下一个:
SELECT id FROM pages WHERE (id>$requestedPageId) ORDER BY id LIMIT 1
EXPLAIN说查询类型是“范围”,行列表示它将检查所有id小于或大于页面id的行(一个较大的数字)。
你好,伙计们,我需要在一个sql查询中使用mutiple子句,如下所示,但是它不能工作,请帮助我。
select (select count(total) as 'studentMarks1' from School where total <60 ),
(select count(total) as 'studentMarks2' from School where total >80 )
from School
where Id = '8'
我有代码
mysql_query("INSERT INTO authors (author) VALUES ('$rec_fic_author') WHERE NOT EXISTS (SELECT * FROM authors WHERE author='$rec_fic_author')") or die("cannot insert author");
其中,authors是包含authorID (pk)的表,author $rec_fic_author是_POST变量
我正在尝试这样做,这样当一个人添加一个作者时,代码会检查
我想从Derby中的一个表中删除一定数量的废弃行。如下所示:
DELETE FROM table WHERE obsolete = 1 LIMIT 100000;
但是Derby不支持非标准的LIMIT语法。不幸的是,通常的替代方案也不起作用:
DELETE FROM table WHERE obsolete = 1 FETCH FIRST 100000 ROWS ONLY;
虽然以下方法最终会起作用,但性能非常糟糕:
DELETE FROM table WHERE id IN
(SELECT id FROM table WHERE obsolete = 1 FETCH FIRST 1000
我对IN子句进行了查询。
select * from student where id in (1, 2, 3, 4, 5)
引擎将如何解析和执行此SQL查询?
是这样,用五个不同的查询来解析吗?
select * from student where id = 1
select * from student where id = 2
select * from student where id = 3
select * from student where id = 4
select * from student where id = 5
我试图使用以下代码使用Java 7中的JavaPreparedStatement执行一个SQL查询:
PreparedStatement functionalCRsStatement = con.prepareStatement(
"select * from openquery(SERVER,\n" +
"\t'Select X , Y, Z, A from D r\n" +
"\tINNER JOIN E c\n" +
"\tON r.RNID = c.RNID\n" +
&
在python sqlite3中,我希望在date_column重新排序所有列之后更新一个表,以供将来使用。
我只能找到'SELECT',但我需要更新和保存表供以后使用。
cursor.execute(f"SELECT * FROM '{table_name}' ORDER BY date(date_column) DESC")
对于select语句,如
select * from table where indexed_col='abc';
sql将转到索引表,获取行地址并返回所需的数据。但是dml语句呢?
update table set indexed_col='abc' where condition;
如何确保表和索引表之间的一致性?
使用where条件(如WHERE LEFT(字段, 4) = "abcd"),我的mysql遇到了一个问题。我目前正在优化我的查询,我注意到它没有使用我定义的任何索引。我认为LEFT()有使用索引的潜力,而SUBSTRING却没有?(即在对这个问题的答复中提到:)
因此,在我的例子中,字段名为category CHAR(6),在表image中。为了进行测试,我定义了各种索引:
ALTER TABLE image ADD INDEX `cat` (`category`);
ALTER TABLE image ADD INDEX `cat2` (`category(2)`);
AL
我正在工作时在SQL Server中执行一个基本的连接。我认为这花费了相当长的时间(将一个包含大约2000条记录的表连接到另一个包含大约500条记录的表)。
下面是查询的样子:
select
an.AccountNumber
,d.AccountCharacteristic
,st.TotalBalance
from AccountLevelData as d
join Statements as st
on st.AccountNumber = d.AccountNumber
join #AccountNumberList as an
on an.