SQLなら俺に訊け [無断転載禁止]©2ch.net (457レス)
SQLなら俺に訊け [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1499985653/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
12: デフォルトの名無しさん [] 2017/11/03(金) 20:07:37.65 ID:N8t7Jq3a SQL初心者です。 複数のrowを一度に取りたいのですがどう書けばいいのでしょうか。 後述の(C)より効率のよい記述を探しています。 (なおRock54回避の為シングルクオートを全角に、またselectをカタカナに変更しています) 用途は掲示板で、以下のような「先頭と最近の5投稿」の取得が目的です。 https://mevius.5ch.net/tech/ 環境はSQLiteです。SQLite依存で構いません。 単純には以下2クエリになりますが、 select * from thread order by no limit 1; // (A) select * from thread order by no desc limit 5; // (B) A-B間で更新されたときに過渡状態のデータが返ることを避けるため、一つに纏めたいのです。 SQLiteでは読み込みにはトランザクションが使えず、BEGIN/COMMITで囲んでブロック出来ません。 試行錯誤して一応以下のクエリは通るようですが、サブクエリが効率が悪く見えるのでもっと良い書き方を探しています。 セレクト from ’1234’ where no in (values(’1234’) union セレクト no from ’1234’ order by rowid desc limit 6); // (C) ここで1234はスレッド名=スレッド最初の投稿Noです。 4chanのように板毎にNoが打たれており、スレ内のNoは飛び飛びになっています。 なお前側values部分もサブクエリにして先頭番号を取得する limit 1のサブクエリも書き方があれば教えてください。 (デバッグ時に使う) これも出来ません。例えば、以下は通りません。 セレクト * from ’1234’ where no in ((セレクト no from ’1234’ limit 1) union セレクト no from ’1234’ order by rowid desc limit 6); // (D) // limitはunionの後に、とエラーが出る (A)+(B)は同時にデータも取得する為、(C)より効率がいいと考えています。 (データの順序が異なるが、簡単にカバー出来る範囲なので問題ない) ただし(A)+(B)だと場合によっては中途半端なデータが返る時があり、これは避けたいのです。 なお初心者の為上記前提がいろいろ間違っているかもしれませんが、その辺はご指摘下さい。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/12
273: デフォルトの名無しさん [] 2024/10/14(月) 03:33:42.65 ID:iqlRL8W8 >>267 それは文字の照合順序の問題 自分でそうしたのか、他人がそうしたのか書いてないが、一文字目だけで並び替えているだけ。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/273
327: デフォルトの名無しさん [] 2024/11/12(火) 17:31:02.65 ID:v7TGFNyn >>325 SQLの構文解析エンジンの仕様によるような書き方をするのがそもそもの間違いだよね。 http://mevius.5ch.net/test/read.cgi/tech/1499985653/327
352: デフォルトの名無しさん [] 2024/12/25(水) 19:44:16.65 ID:r1WXKMXg >>349 SQLの構文仕様を調べたことがあるのか? SQLそのものは自然言語の英語の語順になっているだけ http://mevius.5ch.net/test/read.cgi/tech/1499985653/352
359: デフォルトの名無しさん [sage] 2024/12/30(月) 19:29:38.65 ID:V3PHz5v0 >>358 なおすでーー http://mevius.5ch.net/test/read.cgi/tech/1499985653/359
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.026s