私は出版データベースを持っており、著者に関するいくつかの情報を取得する必要があります。著者フィールドは、例えばLudlum、R.; Grisham、J。;としてデータベースに保存されているRobert LudlumおよびJohn Grishamという2人の著者がある書籍の場合、著者が1つのフィールドでまとめてまとめたものである。 特定の著者が自分の名前をクリックすると、そのアプリケーションは情報をスプールして書籍のデータを取得する必要があります。私は、著者の姓を参照する変数であるデータカンマ区切りのフィールドからデータを取得するSQL
$select = "SELECT tblPublications.Title, tblPublications.Year FROM tblPublications WHERE tblPublications.Authors LIKE '%$sname%'";
$sname
を取得するために、この文を使用しています。この問題は、2人の著者が同じ姓を共有する場合に発生します。しかし、私が実装しようとしている回避策は、アプリケーションを姓にしてカンマを挿入し、ユーザーのファーストネームを取得して最初の文字を取得し、結果を文字列に結合し、それらをそれぞれのカンマ区切りの値私が探しているグリッサムの本なら、私は* グリムハム、J. *を私の質問に使用します。 PHP、MYSQLでこれを行う方法はありますか?
:
今、あなたのようなものを使用して非常に高速なインデックスを使用して照会することができます。非原子的なデータを1つの列に格納することは、パフォーマンス上の理由から*絶対に必要な場合を除いて、悪い習慣です*(あなたがGoogleや何かをしている場合を除きほとんど事実はありません) – FtDRbwLXw6
データベース内のCSVデータ1つの本に複数の著者がいる場合は、別の著者表を作成し、リンク表を使用して書籍を著者にリンクしてください。 – Johan
出版物が保管されている場所は私の外です。私はそれが混沌であることを私が信じている私はそれが混乱していることを知っています – MaxI