よろしくお願いいたします。 0020NAME IS NULL2021/03/24(水) 20:27:06.58ID:??? 最近の質疑応答スレって特定の処理系に依存するものが多いね 次スレ立てず、処理系毎に分けてしまう方が良いかも 0021NAME IS NULL2021/08/03(火) 21:48:15.38ID:XJY/pG+9 phpの中でsql文を変数に格納したいのですが。 一応、次の構文で通ります。これはsqlインジェクション的に問題ありますでしょうか?
$query = "SELECT * FROM emp_table WHERE job = '".$job."' ORDER BY emp_id"; 0022NAME IS NULL2021/08/27(金) 15:13:41.21ID:??? >21 残念ですが、それでは何の解決にもなってない もう一度SQLインジェクションについて勉強汁
なおSQL構文を変数に入れて使うこと自体は何の問題もない 0023NAME IS NULL2021/08/28(土) 01:03:14.57ID:PkRMMA3g ネタなんだろうけど、バインド変数にもしてないな。 0024NAME IS NULL2021/09/25(土) 15:59:58.40ID:fttDx0O8 テーブル T
コード 履歴番号 本文 A 1 aaa A 2 bbb A 3 ccc B 1 ddd B 2 eee C 1 fff C 2 ggg
抽出後
コード 履歴番号 本文 A 3 ccc B 2 eee C 2 ggg
コードでgroup byして履歴番号が最大のものだけを 抽出したいですが 本文は失いたくありません なにか上手い方法はありますか? 0025NAME IS NULL2021/09/25(土) 17:31:01.38ID:??? ちょっと雑で済まん select コード,履歴番号,本文 from T, (select コード as c, max(履歴番号) as r from T group by コード) w where コード=c and 履歴番号=r; 0026NAME IS NULL2021/12/16(木) 16:47:56.62ID:y5mx3BAp>>25 履歴番号の結合条件は不要だろ 0027NAME IS NULL2021/12/16(木) 16:50:02.45ID:y5mx3BAp 間違った 0028NAME IS NULL2022/02/11(金) 08:39:15.81ID:zwC8g7xH 集約関数が使えるのはSELECT句とHAVING句だけだと思っていたのですが、 ORDER BY COUNT(*); と書いてもエラーになりません。 集約関数が書ける句を全て上げると、どの句がありますか? 0029NAME IS NULL2022/02/26(土) 09:08:11.60ID:BPPSMltD 下記の@が、Aの様に書けないのはどうしてでしょうか? ご存じの方、いらっしゃいましたら教えて頂けると嬉しいです。 宜しくお願い致します。
@ SELECT shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, (SELECT AVG(hanbai_tanka) FROM Shohin) AS hanbai_tanka_all FROM Shohin;
A SELECT shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, AVG(hanbai_tanka) FROM Shohin FROM Shohin; 0030NAME IS NULL2022/02/26(土) 12:53:38.36ID:???>>29 GROUP BYとグループ関数の使い方を正しく学習してくるんだ グループ関数はGROUP BYが必須(全行が集計対象になる場合のみ省略可) 0031NAME IS NULL2022/02/27(日) 10:17:39.49ID:wR3P0H0y>>30 なるほど、それで@の内側のAVG()関数はSELECT句に書いてもエラーにならないんですね。 解りやすいです。ありがとうござました! 0032NAME IS NULL2022/03/03(木) 01:05:30.78ID:??? 伝票id 社員id 名前 数 1 a 山田 10 2 b 田中 20
select 社員id,名前,sum(数) from table group by 社員id with rollup
結果 a 山田 10 b 田中 20 null 田中 30
一番下の田中を、小計を出さずにnullにする事はできますか? 0033NAME IS NULL2022/03/03(木) 13:32:27.33ID:??? 自分でwith rollupを指定して何を言ってるんだ? 0034NAME IS NULL2022/03/03(木) 17:14:27.20ID:???>>32 突っ込まないから、どういう結果にしたいかを書いてみて 0035322022/03/09(水) 14:33:49.93ID:??? 解決しました。
select *
from ( select 列1,列2,sum(合計列) from テーブル名 group by 列1,列2 with rollup ) as テーブル
where (列1 is not null and 列2 is not null) or (列1 is null and 列2 is null)
サブクエリを使わずhavingを使った例もあったけど自分の環境では合計行が出なかった。 0036NAME IS NULL2022/03/11(金) 07:04:08.37ID:GAAG5umt 結局、ネタか 0037NAME IS NULL2022/03/16(水) 16:20:42.35ID:Fdgum0qq 改定前の「ゼロからはじめるデータベース操作 SQL」という本の177ページ問5.3に載っている問題なのですが、 下記の様に商品分類ごとに平均販売単価を求めるSQL文で、 「GROPU BY S1.shohin_bunrui」のS1.がどうして必要なのか分りません。 これを付けなくても結果は同じになります。 これがどうして必要なのか分る方いらっしゃいましたら教えて頂けると助かります。
CREATE VIEW AvgTankaByBunrui AS SELECT shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, (SELECT AVG(hanbai_tanka) FROM Shohin S2 WHERE S1.shohin_bunrui = S2.shohin_bunrui GROPU BY S1.shohin_bunrui) AS avg_hanbai_tanka FROM Shohin S1; 0038NAME IS NULL2022/03/16(水) 21:38:46.46ID:??? 憶測なんですがねぇ… 省略した場合はS2のshohin_bunruiが参照されるはず でもS1.shohin_bunrui = S2.shohin_bunruiが有るので S1でもS2でも結果は同じだから許されるのかもしれない 0039NAME IS NULL2022/03/16(水) 21:45:37.79ID:??? あ、MYSQLだからS1への参照許されるはず 他RDBMSだと多分エラーになる。S2ならば参照可能 0040NAME IS NULL2022/03/16(水) 21:55:38.94ID:??? ていうかその本はまれに見るクソだな… AVG(hanbai_tanka)はあくまでshohin_bunruiに関連するデータなので shohin_idやshohin_meiの列とは最早何の関連も無い情報なのよ それを無理やり結合して取得するやり方は意味不明バグの原因にしかならんよ 0041NAME IS NULL2022/03/17(木) 18:12:46.57ID:???>>40 ちょっと何言ってるかわかりません GROPU BYがおかしいのを除けば、普通の相関サブクエリだと思うが まあいまどきはあんまり使わんがな
上の真似して select case when name is null or name = '' then 'name' else name end as name case when idis null or id= '' then 'id' else id end as id from users; こんな感じでセレクトしてるんだけど、なぜかカラム名まで取れて 1行目 id name 22 山田 みたいな感じの結果が帰ってきてしまう。。 なんでですかね 0115NAME IS NULL2023/02/27(月) 16:04:25.51ID:???>>114 then ‘name’とかthen ‘id’としてるからだろ 0116NAME IS NULL2023/03/05(日) 15:24:38.71ID:??? スクリプト書くのもめんどくさいから表計算ソフトでやってしまう。 0117NAME IS NULL2023/03/20(月) 13:32:20.56ID:6b0WpT0J 【2月13日】 原発上空にUFO? 【震度6強】 ://egg.5ch.net/test/read.cgi/atom/1615255108/l50 0118NAME IS NULL2023/04/07(金) 07:38:50.85ID:??? 調べてみますね・・ 0119NAME IS NULL2023/04/07(金) 13:35:22.77ID:??? case1とかじゃなくてもいいの? 0120NAME IS NULL2023/06/13(火) 11:54:51.78ID:/UXsc9Sn kuni toshi -------- 日本 東京 日本 大阪 米国 ロス 米国 シカゴ 中国 北京 中国 上海
↓
kuni toshi -------- 日本 東京、大阪 米国 ロス、シカゴ 中国 北京、上海
初心者質問、ごめんなさい。 上記のようにgroup化したいのですが
SELECT kuni,toshi FROM テーブル名 GROUP BY kuni
では上手いきませんでした、アドバイスをお願いできませんか? 0121NAME IS NULL2023/06/13(火) 14:17:38.31ID:??? GROUP_CONCATで 0122NAME IS NULL2023/06/13(火) 15:55:49.38ID:/UXsc9Sn>>121
ありがとうございます!
いままで2回にわけてSQL文をつくって無理やりやっていましたが、スマートにできそうです! 0123ってことだよ2023/07/25(火) 10:50:58.47ID:OsyChIkV ってことだよってことだよってことだよ 0124NAME IS NULL2023/08/25(金) 02:11:49.10ID:UQngHRKx WHERE IN で入力した順番になりません
SELECT id,name FROM table WHERE id IN (3,2,1)
を流すと 1,2,3に並び替えられてしまいます
入力順のままにする方法はありますでしょうか? 0125NAME IS NULL2023/08/25(金) 02:14:36.46ID:??? 3、2、1の順にしたい場合は、その順にソートするしかない 0126NAME IS NULL2023/08/25(金) 02:19:36.31ID:UQngHRKx すいません! order by でできるのでしょうか? 0127NAME IS NULL2023/08/25(金) 02:36:15.05ID:??? 入力した順番が判らないと、その通りにはならない DBへの格納順は指定できない 3,2,1の順が単に大きい順ということなら、order by desc で良い 0128NAME IS NULL2023/08/25(金) 02:48:26.28ID:??? 入力順が、例えば2,1,3だったとしよう その順に出力したいなら、 select * from table order by field (id , 2,1,3);
この場合も、入力順が 2,1,3 であると言う情報が必要 0129NAME IS NULL2023/08/26(土) 13:57:16.28ID:??? ORDER BY無しでINSERTされた順に出力される保証なんて無いのでは 0130NAME IS NULL2023/08/26(土) 17:16:58.12ID:??? INSERTされた順の話なんて誰もしてないやろ 0131NAME IS NULL2023/08/26(土) 18:01:41.22ID:??? >入力順のままにする方法はありますでしょうか?
これをどううけとるか、だな 0132NAME IS NULL2023/08/26(土) 20:22:26.02ID:ihJR3/H9 ネタに反応すんな! 0133NAME IS NULL2023/09/28(木) 04:10:26.34ID:??? ホントに、そんな風になるんやなぁ 0134NAME IS NULL2023/09/28(木) 12:32:59.92ID:??? あかん、道が混んでてまったく進まん 0135NAME IS NULL2023/10/24(火) 13:07:36.35ID:HJ1D8OfA SELECT * FROM users;で特定のカラムだけ抽出したくないとかできませんかね?
created_atだけ抽出したくないとか 0136NAME IS NULL2023/10/24(火) 18:45:14.56ID:??? MySQLにそういう機能はないので無理 0137NAME IS NULL2023/10/24(火) 20:15:46.42ID:??? *で無く、必要なカラムを指定すれば良いだろう 0138NAME IS NULL2023/11/16(木) 16:41:27.46ID:q/IEcbuv > 彼らはよく、社会に貢献したいと口にする。 > なんでも社会悪のネトウヨを自殺に追い込むことが、社会に貢献することなんだそうで。 > イジメや嫌がらせで社会に貢献できる教師や警官になるために、あえて帰化したんであって、祖国同胞を裏切ったわけではなく、心は●●人なんだそうだ。 > > 昔は帰化すると裏切り者と呼ばれたりしたが、祖国に国籍を残したまま帰化する方法が確立された現在では、社会に貢献するためにむしろ帰化することが推奨されている。 > 拳銃所持で前科のある生粋の反日家ですら、今では普通に帰化している。 > > ●●学会などはネトウヨ認定した日本人を盗撮して、痴漢の写真だと言ってばらまいている。 > それらの写真は、集団ストーカーに使用される。 > 彼らは集団ストーカーを、[地域で子供を守る安心安全パトロール]と称している。 0139NAME IS NULL2023/11/16(木) 16:56:27.18ID:??? なんの脈絡もなく突然こういうこと言い出す人いたら怖い 0140NAME IS NULL2023/11/16(木) 21:14:56.17ID:Hd0dmE6L>>139 昔の2ちゃんねるのデマだよ
こういう事実と異なる話で、創価学会員が全員、在日コリアンとかありえない話を信じ込む人間が一定数いる。 0141NAME IS NULL2023/11/17(金) 03:26:02.04ID:gYoaa3QGhttps://xn--2ch-5q0fn79k.net/
こっちでやれ 0143NAME IS NULL2023/11/17(金) 21:23:38.30ID:5nZ/i4UM こういうのが好きそう https://youtu.be/Ci_zad39Uhw?si=oADF6_fQYm5UB8Vl0144NAME IS NULL2023/12/03(日) 23:55:05.90ID:??? test 0145NAME IS NULL2024/02/19(月) 17:24:45.85ID:mGghvuzC SELECT文の作成に困っています