質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

4回答

409閲覧

a,c,uの順かつ、一番短い名前を出力

ryo_py

総合スコア25

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2018/05/22 07:00

人名のスペルにa,c,uの3文字が順に書かれる人物がいれば、その中で一番短い文字数の人名だけ出力するには何と書けばいいでしょうか?

sql

1SELECT * FROM User WHERE Name LIKE '%a%' and Name LIKE '%c%' and Name LIKE '%u%';

User

性別名前
、、、、、、〇〇〇〇
、、、、、、〇〇〇〇
、、、、、、〇〇〇〇

イメージ図

a,c,uを含む人名までしかできませんでした。
順に書かれている、一番短い文字数、が調べても分かりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

LIKEを一つにまとめる
LEN で ORDERBY して LIMIT 1

投稿2018/05/22 07:10

KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryo_py

2018/05/22 08:11

ヒントありがとうございました!
guest

0

特定の人に限定されるなら以下

SQL

1SELECT * FROM User 2WHERE Name LIKE '%a%c%u%' 3order by char_length(Name) limit 1

厳密に行う(acuの並びで最小文字数の人名が複数ある時)なら以下

SQL

1SELECT * FROM User 2WHERE Name LIKE '%a%c%u%' 3 and char_length(Name)=( 4 select min(char_length(Name)) from User 5 WHERE Name LIKE '%a%c%u%' 6 )

投稿2018/05/22 08:01

編集2018/05/22 08:02
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryo_py

2018/05/22 08:12

ありがとうございました。 参考になります!
sazi

2018/05/22 08:29

length()はバイト数、char_length()は文字数ですので念の為
ryo_py

2018/05/22 08:57

ご丁寧にありがとうございます。
guest

0

ベストアンサー

質問の内容をそのまま書くなら、こんな感じでしょうか。

SQL

1SELECT * FROM User 2 WHERE Name LIKE '%a%c%u%' 3 AND LENGTH(Name)=(SELECT MIN(LENGTH(Name)) FROM User WHERE Name LIKE '%a%c%u%');

投稿2018/05/22 07:54

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryo_py

2018/05/22 08:09

ありがとうございました。 上手くできました。
guest

0

  • acu の順に書かれているのですから検索対象は like "%acu%" で指定すればいいですよね。 LIKE は部分一致で検索できます。
  • 一番短い文字列を探すということは、文字列の長さでソートしましょう。
  • その上で、結果の一行目だけを取得すれば求めたいものが出るはずです。

投稿2018/05/22 07:15

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryo_py

2018/05/22 08:11

ヒントありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問