No.1ベストアンサー
- 回答日時:
「設計上あり」とは、CSV入出力を考慮しての事でしょうか?
データベースソフトでは、テキスト入出力をする場合に区切り文字をデフォルトの「,」以外にもタブとか任意の文字に設定できることが多いので、その意味では「あり」です。Mysql、firebird、ACCESS、桐いずれもOKです。
あと「更新時のキーが別に云々」のところもよく意味がわからないのですが...
学術的意味合いで「データベースとはかくあるべき」というのがあるのかどうかは知りませんが。
CSV入出力は全く考慮していません。といことは設計上なしかな・・やっぱし。
「更新時のキーが別に云々」というのは、
項目1 項目2
1 1,3,5,6
で項目2を更新する際に、where 項目1='1'で
更新するという事です。つまり項目2はWHERE句には
入らることはありません。SELECT 項目2 WHERE 項目1='1'の後に、
SELECT * FROM xxテーブル where ID IN ('1','3','5','6');
という使いかは良いでしょうか?という意味で質問させていただきました。最初からこう書いておけばよかったです。すみません。
No.3
- 回答日時:
> DBはMySQLで、バージョンは4でLinuxです。
MySQLはわかりません。が、
> IN('1','2','3')であれば文字列でも数値でも検索にマッチするでしょうか?
それはあり得ません。もし、'1,5,8'と、'1,4,3'というデータがあって、IN ('1')で検索に引っかかったなら、'123,456'というデータも検索に引っかかります。つまり、人間にとって、というよりCSVファイルとしては文字列中のカンマに「項目を分ける」という“意味”がありますが、データベース中の文字列フィールドに、そんな“意味”はない、あったら困るからです。
#INで文字列も検索できるという前提ですけど
#というか、試してみたら「ダメだ」とわかるでしょう?
テーブル設計の一例。
主体
ID その他データ
-- -------
1 なにか
2 これも
複数データ
ID F_主体 意味
-- ----- ---
1 1 1
2 1 2
3 2 1
4 2 3
-- 複数の行がでる
SELECT * FROM 主体
LEFT JOIN 複数データ ON F_主体 = 主体.ID
WHERE 複数データ.意味 IN (1, 2) -- 数値の場合
WHERE 複数データ.意味 = '1'
OR 複数データ.意味 = '2' -- 文字列の場合
複数の行で返ってくるので、データベース外(または埋め込みプログラム)でCSV形式にするなりなんなりします。
No.2
- 回答日時:
列に
'1,2,5,8,9,10'
'3,5,7,9'
'4,5,6,7,8'
と格納し、SELECT文で
SELECT * FROM table WHERE column IN (1, 2, 3)
と検索したい、ということでしょうか?
そういうことであれば、できません。
一部のデータベースでは列を配列にできるようですが、そのようなものであれば、あるいは可能かもしれません。が、それも列の定義を「数値」とした場合です。「数値」と「文字列」は比較できませんので、IN句で(というか、数値で文字列内を)検索することはできません。
それから、まずは使用している(あるいは予定の)RDBMSの名称とバージョン、プラットフォームを明記してください。
この回答への補足
DBはMySQLで、バージョンは4でLinuxです。IN('1','2','3')であれば文字列でも数値でも検索にマッチするでしょうか?
補足日時:2004/01/31 18:23お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Visual Basic(VBA) マクロについて教えてください 2 2023/06/09 16:01
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) マクロについて教えてください。 3 2023/06/09 17:37
- Oracle SQL update方法 2 2022/06/22 14:07
- 電気・ガス・水道 負荷設備契約の減設工事費用12万円は正当な価格でしょうか? 5 2023/01/30 13:37
- 統計学 統計に関する質問です 3 2022/05/19 20:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
ACCESSで条件付き書式の設定方法
-
エクセルのフォームについて(...
-
データベースソフトのTCARDにつ...
-
ハイフン無しの電話番号データ...
-
データのインポートに失敗します。
-
POSTGRESQLにEXC...
-
エクセルの重複データの曖昧検索
-
社内サーバーとデータベース
-
CSVでDLしたデータにダブルクォ...
-
SQLを使いこなしている人が ETL...
-
エクセルでカタログ制作(印刷...
-
【パフォーマンス】ファイル読...
-
リスト形式の表とデータベース...
-
Thunderbirdのインポートの処理...
-
キャッシュとバッファの違いは?
-
DB2 UDBって?
-
ACCESS2019でのエラーメッセージ
-
AndroidからのAccessデータベー...
-
Accessのレポートで「縦書き」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
リスト形式の表とデータベース...
-
データベースソフトのTCARDにつ...
-
SQLを使いこなしている人が ETL...
-
エクセルのフォームについて(...
-
エクセルの重複データの曖昧検索
-
オラクルのLONG RAW型のテーブ...
-
ACCESSで条件付き書式の設定方法
-
データのインポートに失敗します。
-
OpenOfficeのBaseでExcelのデー...
-
ハイフン無しの電話番号データ...
-
CSVでDLしたデータにダブルクォ...
-
カンマ区切りで格納するカラム...
-
【ACCESS】複数のパソコンから...
-
ODBCを使わないでExcelへ連携
-
ACCESSではどの程度の規...
-
DBとテキストファイルの比較
-
データ.mydファイルのテキス...
-
【パフォーマンス】ファイル読...
-
別のACCESSデータベースのテー...
おすすめ情報