sql >> データベース >  >> RDS >> Mysql

MySQLでUNIONを使用したときに結果がどのテーブルから来たかを知る方法

    プレフィックスを別の(計算された)列として追加してみませんか?

    SELECT 'SN' prefix, snippet_id, title FROM tbl_snippets WHERE title LIKE ?
    UNION ALL
    SELECT 'TA', tag_id, tag FROM tbl_tags WHERE tag LIKE ?
    UNION ALL
    SELECT 'CA', category_id, category FROM tbl_categories WHERE category LIKE ?
    

    編集: UNION [DISTINCT]も変更しました UNION ALLへ -次の理由で:

    • 元のクエリでUNIONに対して異なる結果が生成された場合 およびUNION ALL 、プレフィックスを導入すると、結果の行数が変更されます。
    • ほとんどの場合、UNION ALL UNION DISTINCTよりわずかに高速です 。
    • ほとんどの人は実際にUNION ALLを望んでいます 。



    1. Amazon EC2、InnoDB:mmap(xバイト)が失敗したため、mysqlが開始を中止しました。 errno 12

    2. PHP PDOException:SQLSTATE [HY093]:無効なパラメーター番号

    3. 行内の標準偏差を選択するにはどうすればよいですか? (SQLの場合-またはR :)

    4. 日時値(SQL Server)の時間部分を削除するにはどうすればよいですか?