文字列をデータベースの異なるテーブルの整数列と比較する際に問題があります。整数と文字列を比較するmysql SQLクエリ
カテゴリとコンテンツとして2つのテーブルを持つデータベースを用意してください。現在、各コンテンツテキストは、コンマで区切られたコンテンツテーブルのcategory_ids列にリストされている複数のカテゴリに属することができます。私はそれが正規化されていないことを知っている。しかし、すでにそこにある。
カテゴリテーブル
id | name | timestamp
1 aaa something
2 bbb something
3 ccc something
4 ddd something
5 eee something
コンテンツテーブル
id | category_ids | content | timestamp
1 1 xxx something
2 1,2,3,4 yyy something
3 1,2 zzz something
4 1,2,3 www something
は、今私は、各カテゴリ内のコンテンツのテキストのカウント数とカテゴリのリストを表示する必要があります。 そのカテゴリを使用しているコンテンツテキストの数を意味します。注(カテゴリEEEので、結果セット内の0カウント数を示す任意のコンテンツのテキストではありません。)私は、コンテンツテーブルのcategory_idsカテゴリテーブルのIDを比較する方法の多くを試してみました
aaa(4)
bbb(3)
ccc(2)
ddd(1)
eee(0)
。しかし、1つは整数であり、他の1つは文字列です。私が試した
一つの方法は、関数をキャストが、私のデータベースを変更する方法を教えてはいけないしてください
SELECT C.id , C.Name, COUNT(*) AS ContentCount FROM categories AS C LEFT JOIN content AS Q ON (CAST(C.id AS CHAR) = (Q.category_ids)) GROUP BY C.Name
を失敗しています。どのように私はこのような結果セットを与えるクエリを書くことができる任意のアイデアが高く評価される場合。
データベースのCSVは悪いです。あなたは噛まれています。 – Johan