X



MySQL SQL質問応答スレ [無断転載禁止]©2ch.net
0068NAME IS NULL
垢版 |
2022/04/20(水) 12:53:29.57ID:sfLQoamO
石橋薫というおっさんと仕事を一緒にしたら死ぬぞ
0069NAME IS NULL
垢版 |
2022/04/20(水) 21:49:00.60ID:???
>>67
5.7系の場合はtemp tableが必要になった場合の速度が違う

8.0系の場合はTempTableエンジン使っていれば性能的な差は気にしなくてもいいけど
Postgresと違ってMySQLのtext型は掲示板のレスのような長い可変文字列を格納する型として定着してるので
メールアドレスや名前みたいなのに使うと他の人が見ると混乱する

DBのデータ型でも簡単に文字数制限できるのに
それをアプリだけでやるというのは良くない設計
0070NAME IS NULL
垢版 |
2022/04/21(木) 01:20:30.36ID:PsjOjBp3
実際に格納されている文字列長分の領域しか使っていない、事前に領域を確保していない、使わなくなった領域は穴埋めで再利用されると思うのは、データベースエンジニアでもいるくらいだからなあ。

データの物理位置を常に移動させていたら、とてもじゃないが、使い物にならない速度になってしまう。

なんとなく大きなデータ型を使うのは、アンチパターンどころか、絶対にやってはいけないレベル。
0071NAME IS NULL
垢版 |
2022/05/01(日) 17:56:21.32ID:???
スキーマ名にutf8な日本語が含まれている場合に、mysqldumpでうまくスキーマごとにダンプすることってできますか?エロい人。
Windows版の5.7です。
0072NAME IS NULL
垢版 |
2022/06/04(土) 19:11:51.19ID:???
ローカル環境の8でTEXT型20万行に対しnot in検索かけたらこの世の終わりみたいな音出してたよ
0073NAME IS NULL
垢版 |
2022/06/05(日) 12:37:13.61ID:???
マルチバイトを使わない文字列が1カラムあるテーブルがあって
password
Password
PASSWORD
あって、区別するにはBINARYを使うというまではわかったんだけど、

このカラムにプライマリキーやuniqueを設定しようとすると重複してダメと言われるけど、大文字小文字が混在する場合は無理?
1カラムしか無い場合はプライマリーキーとかは設定しなくていいの?
0075NAME IS NULL
垢版 |
2022/06/05(日) 19:11:06.01ID:???
プライマリキーを設定するかどうかはcollationとは別の問題
0076NAME IS NULL
垢版 |
2022/06/07(火) 07:52:43.15ID:uPHVsKsW
レコード追加する際に、連番のカラムを最大値+1にしたいです。

諸事情で、
・その連番のカラムはAUTO_INCREMENTではない
・プライマリキーでもなければUNIQUEですらない
・テーブル定義は変更してはいけない
という状況で、
重複させないのが要件です。

INSERT INTO unko (renban) SELECT MAX(renban)+1 FROM unko;
として1つのSQLで実行すれば、重複のリスクは回避できるでしょうか?

それとも、トランザクションでテーブル排他ロックからしなきゃだめでしょうか?
0077NAME IS NULL
垢版 |
2022/06/07(火) 14:36:29.71ID:BXjU4H6U
SQLについて質問なのですが

select USERID,USERNAME from USER_GRADE
where
STATUS in (select STATUS from USER_GRADE where GRADE ='Platinum' group by STATUS)
and
GRADE <> 'Platinum'

これをSQL初心者にもわかる簡単な書式に直して同じ結果を出したいのですがわかる方いますでしょうか
0078NAME IS NULL
垢版 |
2022/06/07(火) 18:02:35.82ID:???
>>76
トランザクションによる排他制御は必須
それが暗黙的に実行されるか明示的に指定するかの違いがあるだけ
そのケースは分離レベルをserializableにする必要がある

同じSQLステートメントでしか競合しないなら
片方のトランザクションをコミット直前でsleepさせておいて
もう片方のトランザクションをsleepさせずに実行した結果を確認してみるといい
0079NAME IS NULL
垢版 |
2022/06/08(水) 16:08:59.29ID:???
すみません、ちょっと筋違いな質問かもしれませんが、
あるソフトウェアはSQLを利用するのですが、それをインストールしようとすると、他のソフトウェアで使われているSQLと競合してインストールできません。
他のソフトウェアはたくさんあるのですが、どれがSQLを使用しているものか調べる方法はありますでしょうか?
0080NAME IS NULL
垢版 |
2022/06/08(水) 17:42:53.28ID:???
節子、それMySQLやない、MsSQLや!
0081NAME IS NULL
垢版 |
2022/06/11(土) 14:35:16.17ID:???
mysqltunerで
skip-name-resolve=1
これの推奨が出てくるのは、いつもlocalhostと127.0.0.1の変換がパフォーマンスの低下になるからってこと?
ユーザ作る時localhostと手打ちで入力しているけど、
ローカルだけならホストの権限は127.0.0.1に揃えた方が良いと言うこと?
0082NAME IS NULL
垢版 |
2022/06/23(木) 10:52:23.93ID:JA6tz0/l
MYSQL8になって何が変わったんですか?
0084NAME IS NULL
垢版 |
2022/08/01(月) 16:09:44.78ID:zIyNNUAa
MYSQLで

CREATE OR REPLACE TABLEみたいなことってできませんか?

テーブルの作成、もしくはテーブル構成の更新したいのです
0086NAME IS NULL
垢版 |
2022/09/25(日) 16:06:07.69ID:???
検索方法で質問です
例えば「カツカレー」で検索すると
「カレー」のレコードを
「三色エビチリ」で検索すると
「エビチリ」のレコードを得たいのですがいい方法はありますでしょうか

テーブルの方は
カレー 情報…
エビチリ 情報…
オムライス 情報…
となってます
0087NAME IS NULL
垢版 |
2022/09/25(日) 20:24:40.72ID:DVn290av
>>86
それマスタテーブルの存在がわかってないだけだろ
0088NAME IS NULL
垢版 |
2022/09/25(日) 20:25:45.03ID:DVn290av
>>86
集合演算子を知ってますか?
0089NAME IS NULL
垢版 |
2022/09/26(月) 01:13:01.97ID:???
>>86
形態素解析の話?
それとも「カツカレー」という単語を「カレー」にマッピングするテーブルを作る話?
0090NAME IS NULL
垢版 |
2022/09/26(月) 08:08:08.79ID:???
>>88
集合演算子で検索したけど
分からなかった
>>89
あ、いえ例えばカレーで検索してカツカレーを求めることはできますけど
正規表現とか使って逆はできないかな
という質問です
マッピングテーブルみたいなの作るしかないのかな
0091NAME IS NULL
垢版 |
2022/09/26(月) 16:12:41.06ID:CFgRtkvv
>>90
カツカレーの情報が、エビチリ情報テーブルに存在しないデータの持ち方ならSELECT文をUNION ALLで並べればいいだけだろ。

セレクト 列名 カレー情報 where 列名 イコール カツカレー
 ユニオンALL
セレクト 列名 エビチリ情報 where 列名
イコール カツカレー

俺は答えを教えるのは本人にとってよくないと思っているから、本当は書きたない。

そもそもそのデータモデリングは自分で考えたのか?
0092NAME IS NULL
垢版 |
2022/09/26(月) 16:15:19.98ID:CFgRtkvv
UNIONなどの集合演算子は列名が揃ってないと使えないからな
0093NAME IS NULL
垢版 |
2022/09/26(月) 17:20:55.87ID:???
>>91
おまえどう考えても勘違いしてるぞ
上塗り重ねず自重しとけ
0094NAME IS NULL
垢版 |
2022/09/26(月) 17:31:17.14ID:???
カツカレーだとライスにはマッチしないんだな
0095NAME IS NULL
垢版 |
2022/09/26(月) 17:42:01.11ID:???
>>90
選択肢はブルートフォース、n-gram、 形態素解析、マッピングテーブルくらいかな
どれを選ぶかは用途次第

ブルートフォースは「カツカレー」というキーワードとテーブルの列名を1件1件比較して
キーワード内の部分文字列が列名に合致するかどうかを判断していく
めちゃ遅くなるけどデータ量と要求速度によってはこれでいい場合もある

n-gramで例えば文字単位で3文字ずつのまとまり(trigram)に分解すれば
「カツカレー」は「カツカ」「ツカレ」「カレー」の3つになる
この3つのキーワードともとの単語でテーブルを検索して合致するものがあるかどうか見る

形態素解析はそれ用のライブラリ使って
「カツカレー」を「カツ」と「カレー」という単語単位に分解して検索する

マッピングテーブルは
「カツカレー」というキーをマスタテーブルの「カレー」にマッピング
「カツ」にマッピングしたりする可能性もあるから1対多
0096NAME IS NULL
垢版 |
2022/09/26(月) 18:45:39.41ID:CFgRtkvv
動的に列名違いのSQLを組み立てるなんてありえない。
0097NAME IS NULL
垢版 |
2022/09/26(月) 19:18:35.82ID:???
>>95 >>96
SQLで出来ないことが分かっただけでも収穫ですが
さらに解決のヒントをいただきありがとうございます

ブルートフォースって言うのですか
PHPで作ってますがロジックで判断するやり方はちらっと頭に浮かんだのですが
性能がめちゃ心配で脳内却下してました
n-gramはちょっと分かりませんでした
形態素は解析エンジンを信用しきれなくて…
というわけで力作業でマッピングテーブルを作るか
それかブルートフォースでやるか
検討したいと思います
0098NAME IS NULL
垢版 |
2022/09/26(月) 19:38:59.67ID:CFgRtkvv
やはり自作自演か
0099NAME IS NULL
垢版 |
2022/09/26(月) 22:34:58.61ID:???
>>97
SQLでというか>>95の選択肢はどれもストアドやUDF使えばDB側でできるよ
特にブルートフォースでやるならDB側でやったほうが性能的には断然いい
0100NAME IS NULL
垢版 |
2022/09/26(月) 22:48:14.01ID:???
設計の最初からやり直した方が速そう
0101NAME IS NULL
垢版 |
2022/09/27(火) 19:57:35.44ID:???
>>99
ストアドとかUDFとか知らなかった
教えてくれてありがとう
0102NAME IS NULL
垢版 |
2022/09/27(火) 21:49:35.32ID:qnEHOR6B
>>101
MySQLのストアドプロシージャは最悪の仕様だから覚悟しとけ!
0103NAME IS NULL
垢版 |
2022/09/29(木) 00:05:53.71ID:???
しらんけどこういう回答でどうなん?
0104NAME IS NULL
垢版 |
2022/09/29(木) 00:10:01.50ID:???
フライとかが登録されたTestというテーブル作っておいて

whereの中に "エビフライ" ライク コンキャット( パーセントフライパーセント)
みたいな値をかく。このエビフライっていうところが検索文字列ね
これでフライがとれるだろ?こういうことじゃないの?
0105NAME IS NULL
垢版 |
2022/09/29(木) 00:10:43.48ID:???
なおSQLで書こうとするとはじかれて書き込めなかった
わかりにくいがすまん
0106NAME IS NULL
垢版 |
2022/09/29(木) 00:11:50.93ID:???
考え方の質問なので、SQLで回答するのは難しい
0107NAME IS NULL
垢版 |
2022/09/29(木) 00:13:04.39ID:???
後半のパーセントで囲まれてるフライっていう文字列はテーブルのカラム名がそこにくる
0108NAME IS NULL
垢版 |
2022/09/29(木) 00:23:26.59ID:???
それに沿った書き方すれば、'エビフライ'という文字列が与えられていて
項目中に'エビフライ'の部分文字列にマッチするレコードを見つけるという問題
'エビフライ'のどこで区切るかは指定されていない
字句解析を行うか、ブルートフォースで行うか、だろうか
ストアドでやるとすれば、各レコードの項目文字列が'エビフライ'という文字列に
部分マッチングするか検査する感じかな
0109NAME IS NULL
垢版 |
2022/09/29(木) 00:57:46.88ID:???
104の方法がブルートフォースだよね
0110NAME IS NULL
垢版 |
2023/01/30(月) 21:25:17.60ID:OB/pjXRI
ソースレビューにてDISTINCTは性能劣化するのでGROUP BYに変更しろと言われましたがDISTINCTよりGROUP BYのほうが性能あがるんですか?初心者ですみません。
0111NAME IS NULL
垢版 |
2023/01/30(月) 22:21:44.20ID:???
>>110
DISTINCTのほうが速いこともあればGROUP BYのほうが速いこともある
状況によるので実際のデータとクエリで実行計画の差と所要時間を計測して
0112NAME IS NULL
垢版 |
2023/02/01(水) 00:16:49.59ID:p28Z13TI
existsのほうが性能が高い可能性ありますか?3パターンを実測し1番性能が良いのを採用します。
0113NAME IS NULL
垢版 |
2023/02/19(日) 12:11:43.60ID:???
mysqldumpでエクスポートしたらインサート文のテーブル名がすべて空なんだけど原因わかる方教えてください。

mysqlのバージョン
Ver 8.0.32 for Linux on x86_64

コマンド
mysqldump -u {user} -p -h {host} --no-create-info --skip-extended-insert {dbname} {tablename} > export.sql

エクスポート結果
insert into `` (aaa ,bbb, ccc);
insert into `` (aaa ,bbb, ccc);
insert into `` (aaa ,bbb, ccc);
0114NAME IS NULL
垢版 |
2023/02/27(月) 10:28:52.54ID:X/A+oHTH
https://qiita.com/masayoshi0327/items/19938d1a40023a5ba159

上の真似して
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 NULL
垢版 |
2023/02/27(月) 16:04:25.51ID:???
>>114
then ‘name’とかthen ‘id’としてるからだろ
0116NAME IS NULL
垢版 |
2023/03/05(日) 15:24:38.71ID:???
スクリプト書くのもめんどくさいから表計算ソフトでやってしまう。
0117NAME IS NULL
垢版 |
2023/03/20(月) 13:32:20.56ID:6b0WpT0J
【2月13日】 原発上空にUFO? 【震度6強】
://egg.5ch.net/test/read.cgi/atom/1615255108/l50
0118NAME IS NULL
垢版 |
2023/04/07(金) 07:38:50.85ID:???
調べてみますね・・
0119NAME IS NULL
垢版 |
2023/04/07(金) 13:35:22.77ID:???
case1とかじゃなくてもいいの?
0120NAME IS NULL
垢版 |
2023/06/13(火) 11:54:51.78ID:/UXsc9Sn
kuni toshi
--------
日本 東京
日本 大阪
米国 ロス
米国 シカゴ
中国 北京
中国 上海

 ↓

kuni toshi
--------
日本 東京、大阪
米国 ロス、シカゴ
中国 北京、上海

初心者質問、ごめんなさい。 上記のようにgroup化したいのですが

SELECT kuni,toshi FROM テーブル名 GROUP BY kuni

では上手いきませんでした、アドバイスをお願いできませんか?
0122NAME IS NULL
垢版 |
2023/06/13(火) 15:55:49.38ID:/UXsc9Sn
>>121

ありがとうございます!

いままで2回にわけてSQL文をつくって無理やりやっていましたが、スマートにできそうです!
0123ってことだよ
垢版 |
2023/07/25(火) 10:50:58.47ID:OsyChIkV
ってことだよってことだよってことだよ
0124NAME IS NULL
垢版 |
2023/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 NULL
垢版 |
2023/08/25(金) 02:14:36.46ID:???
3、2、1の順にしたい場合は、その順にソートするしかない
0126NAME IS NULL
垢版 |
2023/08/25(金) 02:19:36.31ID:UQngHRKx
すいません! order by でできるのでしょうか?
0127NAME IS NULL
垢版 |
2023/08/25(金) 02:36:15.05ID:???
入力した順番が判らないと、その通りにはならない
DBへの格納順は指定できない
3,2,1の順が単に大きい順ということなら、order by desc で良い
0128NAME IS NULL
垢版 |
2023/08/25(金) 02:48:26.28ID:???
入力順が、例えば2,1,3だったとしよう
その順に出力したいなら、
select * from table order by field (id , 2,1,3);

この場合も、入力順が 2,1,3 であると言う情報が必要
0129NAME IS NULL
垢版 |
2023/08/26(土) 13:57:16.28ID:???
ORDER BY無しでINSERTされた順に出力される保証なんて無いのでは
0130NAME IS NULL
垢版 |
2023/08/26(土) 17:16:58.12ID:???
INSERTされた順の話なんて誰もしてないやろ
0131NAME IS NULL
垢版 |
2023/08/26(土) 18:01:41.22ID:???
>入力順のままにする方法はありますでしょうか?

これをどううけとるか、だな
0132NAME IS NULL
垢版 |
2023/08/26(土) 20:22:26.02ID:ihJR3/H9
ネタに反応すんな!
0133NAME IS NULL
垢版 |
2023/09/28(木) 04:10:26.34ID:???
ホントに、そんな風になるんやなぁ
0134NAME IS NULL
垢版 |
2023/09/28(木) 12:32:59.92ID:???
あかん、道が混んでてまったく進まん
0135NAME IS NULL
垢版 |
2023/10/24(火) 13:07:36.35ID:HJ1D8OfA
SELECT * FROM users;で特定のカラムだけ抽出したくないとかできませんかね?

created_atだけ抽出したくないとか
0136NAME IS NULL
垢版 |
2023/10/24(火) 18:45:14.56ID:???
MySQLにそういう機能はないので無理
0137NAME IS NULL
垢版 |
2023/10/24(火) 20:15:46.42ID:???
*で無く、必要なカラムを指定すれば良いだろう
0138NAME IS NULL
垢版 |
2023/11/16(木) 16:41:27.46ID:q/IEcbuv
> 彼らはよく、社会に貢献したいと口にする。
> なんでも社会悪のネトウヨを自殺に追い込むことが、社会に貢献することなんだそうで。
> イジメや嫌がらせで社会に貢献できる教師や警官になるために、あえて帰化したんであって、祖国同胞を裏切ったわけではなく、心は●●人なんだそうだ。
> 
> 昔は帰化すると裏切り者と呼ばれたりしたが、祖国に国籍を残したまま帰化する方法が確立された現在では、社会に貢献するためにむしろ帰化することが推奨されている。
> 拳銃所持で前科のある生粋の反日家ですら、今では普通に帰化している。
> 
> ●●学会などはネトウヨ認定した日本人を盗撮して、痴漢の写真だと言ってばらまいている。
> それらの写真は、集団ストーカーに使用される。
> 彼らは集団ストーカーを、[地域で子供を守る安心安全パトロール]と称している。
0139NAME IS NULL
垢版 |
2023/11/16(木) 16:56:27.18ID:???
なんの脈絡もなく突然こういうこと言い出す人いたら怖い
0140NAME IS NULL
垢版 |
2023/11/16(木) 21:14:56.17ID:Hd0dmE6L
>>139
昔の2ちゃんねるのデマだよ

こういう事実と異なる話で、創価学会員が全員、在日コリアンとかありえない話を信じ込む人間が一定数いる。
0145NAME IS NULL
垢版 |
2024/02/19(月) 17:24:45.85ID:mGghvuzC
SELECT文の作成に困っています

下記のような2つのカラムを同一のものとして集計するヒントを頂けないしょうか?


【アンケートテーブル】
氏名 希望A 希望B
----------------------
Aさん 札幌 仙台
Bさん 大阪 福岡
Cさん 札幌 大阪
Dさん 福岡 札幌

 ↓

【旅行人気ランキング】
---------------------
札幌(3)
仙台(1)
大阪(2)
福岡(2)
0147145
垢版 |
2024/02/19(月) 18:52:39.03ID:???
>>146

ありがとうございます

UNION で検索したら参考になりそうなサイトが沢山ヒットしました
0148NAME IS NULL
垢版 |
2024/02/20(火) 16:16:49.92ID:Wd+q7mRj
UNION ALLだぞ
レスを投稿する


ニューススポーツなんでも実況