SQLなら俺に訊け [無断転載禁止]©2ch.net (457レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
17: デフォルトの名無しさん [sage] 2017/11/04(土) 01:14:38.64 ID:tY9TOSMT(1/2) AAS
ちなみに記事は古いんですが、複数のselectをbegin/endで囲むことも出来るっぽいんですよね、、、
外部リンク:stackoverflow.com

私が出来ないのは、こちらの環境の問題でしょうか?
PHP経由でのsqlite3.15.1と、コマンドラインの3.21.0の両方で駄目です。
157
(1): デフォルトの名無しさん [sage] 2021/12/24(金) 19:31:42.64 ID:unjC7EWw(2/5) AAS
お早い回答ありがとう。
もっと色々試すが取り急ぎ。

新案1:
SELECT CASE WHEN col0 LIKE 'str' THEN 0 WHEN col1 LIKE 'str' THEN 1 ELSE -1 END AS col,target FROM sometable WHERE col>=0;
explainでは32、他だと文法エラーらしいがSQLiteだと通る。(参考 外部リンク:rainbow-engine.com
explain query plan では
0|0|0|SCAN TABLE tags_bulk VIRTUAL TABLE INDEX 0:

新案2:
SELECT col,target FROM (SELECT CASE WHEN col0 LIKE 'str' THEN 0 WHEN col1 LIKE 'str' THEN 1 ELSE -1 END AS col,* FROM sometable) WHERE col>=0;
他ではこう書けと言われているもの。
explainでは32で、見た目中身も同じ。explain query plan も全く同じ。
162: デフォルトの名無しさん [sage] 2021/12/25(土) 19:58:56.64 ID:GPUeNtJx(1) AAS
NOT MATCH が使えない。(Error: unable to use function MATCH in the requested context)
ただし動的エラーで、2つ目のクエリでcol1にMATCHの後、col0にNOT MATCHのチェックで落ちるようだ。
CASEの中でも使えないし、やはりMATCHはインデックスのようだ。
ところでMATCH NOTは使える。

新案4: MATCH NOT
SELECT 0,target FROM sometable WHERE col0 MATCH 'str' UNION ALL SELECT 1,target FROM sometable WHERE col1 MATCH 'str -col0:str';
これでexplainは20、explain query plan は以下。
1|0|0|SCAN TABLE sometabke VIRTUAL TABLE INDEX 9:
2|0|0|SCAN TABLE sometable VIRTUAL TABLE INDEX 11:
0|0|0|COMPOUND SUBQUERIES 1 AND 2 (UNION ALL)

当面はこの新案4で行く予定。
255: デフォルトの名無しさん [sage] 2024/04/15(月) 14:00:04.64 ID:YG3lrvG/(2/3) AAS
>>252
252(1): デフォルトの名無しさん [sage] 2024/04/15(月) 12:45:09.95 ID:cLz3iDP/(1/2) AAS
普通の言語はstmtの構成要素としてexprが設けられるが、sqlでは逆にexprの中にstmtも入り得る異色の設計だから、exprサブセットのみの評価機は作れないね
まあstmtの評価は単にモックとして構文木を組んでみれば目的には適うし良い勉強になる

区切り文字をあまり使わないSQLは初学者には目に滑る構文だから特にそう
sqliteの構文図見直したらしっかりselect-stmtってありますねえ…

>>253
253(1): デフォルトの名無しさん [sage] 2024/04/15(月) 12:57:20.78 ID:cLz3iDP/(2/2) AAS
>>251
評価の確認はおとなしくSQLiteに投げて、構文解析慣れてるようだし見本はこれ参考で十分だろう
外部リンク:sqlite.org

lemonって変わったパーサジェネレータ使ってるのけど、見た感じただのyacc変種なので出会ったトークン種別を単に印字させればよいだけ
まさに求めてたやつです、どうも
各処理系のパーサも見較べるとBison向けでルール/アクションの羅列のpsqlの奴が一番わかり易かった
外部リンク[y]:github.com

psql用だけど拡張や高度な機能を気にする段階に無いので、ここから必要そうなのを拾い始めました
sqliteのパーサは中でゴチャゴチャ処理してるけど、psqlのパーサはparser/*.cへアクション内で呼ぶ関数がキレイに分離されていて、記述的命名から意味論まで分かるお手本のようなデザインですね
座右の文法リファレンスとして印刷してそのまま使えそうな出来栄え
304: デフォルトの名無しさん [sage] 2024/11/03(日) 18:54:12.64 ID:sFUWrMLA(2/2) AAS
>>303
303(1): デフォルトの名無しさん [sage] 2024/11/03(日) 18:18:24.25 ID:gYhGbZOp(1/2) AAS
>>302
それはそうだが、そもそも画像をDBに入れる意味がない
ただ初心者あるあるらしく、「(画像掲示板では)そうじゃなくてファイル名だけDBに入れてapacheに直接配信させるんだ」と
説明してたサイトがあったがすぐには出てこない

なおSQLiteはBLOBにもインデックス張れるらしいが、そんな使い方しないだろ
上級者でもあるあるだけどね
デメリット大きいけどDBに入れたら入れたで便利なことも多いんだよね
もっと良かったこと探しをしろ
310: デフォルトの名無しさん [] 2024/11/06(水) 08:23:55.64 ID:spMsN6R2(1/3) AAS
>>299
299(1): デフォルトの名無しさん [sage] 2024/11/01(金) 09:10:10.59 ID:xFfDlU+j(1) AAS
>>298
色々なサイトでサムネを1ページの中に限定して表示してるのは数を無限や数万数十万にすると負荷がかかるからか
なるほどなあ
RDBでデータ型が画像データというデータ型は聞いたことがない。

RDBは画像データのバイナリデータか、画像データファイル形式に近いラージオブジェクト型。
単に画像データファイルへのリンクが入っているだけという設計もある。
346
(1): デフォルトの名無しさん [] 2024/12/25(水) 17:53:18.64 ID:YmcCoB80(1/3) AAS
>>343
343(1): デフォルトの名無しさん [sage] 2024/12/25(水) 08:15:20.48 ID:63Wcp4qk(1/2) AAS
誰もWITHの話なんかしとらんのに突然の主張w
SELECT句よりも先にWITH句を書くので、SELECT句が先ではない。
348: デフォルトの名無しさん [] 2024/12/25(水) 17:58:44.64 ID:YmcCoB80(3/3) AAS
 
SQLを適当に書く人間が増えて、めちゃくちゃなシステムだらけになった。

同じカラムが、同じカラムがというなら、結合したビューでも用意しとけよw
444: デフォルトの名無しさん [sage] 2025/02/10(月) 12:41:14.64 ID:y2n5AJNm(1) AAS
ベンダー違っても中身は全部Redisという場合もあるし単純なセッション管理にKVSを使うとかならベンダー違っても基本的に同じ設計になるしユースケース次第でいろいろ

NoSQLって言うだけだとリレーショナルじゃないくらいの意味しかなくて広すぎるから細かい話は一括りにはできない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s