Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql '中的未知列;其中第'条;_Mysql_Sql_Where - Fatal编程技术网

Mysql '中的未知列;其中第'条;

Mysql '中的未知列;其中第'条;,mysql,sql,where,Mysql,Sql,Where,我有简单的sql: SELECT * FROM `oc_artists` WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id` AND `oc_artists_tags`.`artist_tag` LIKE '%klass%' 当我运行此程序时,我得到: 1054-where子句中的未知列“oc_Artisters_tags.Artister_id” 这是一个用于搜索脚本的sql。如果查询与oc\u artists

我有简单的sql:

SELECT *
  FROM `oc_artists`
 WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
   AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
当我运行此程序时,我得到:

1054-where子句中的未知列“oc_Artisters_tags.Artister_id”


这是一个用于搜索脚本的sql。如果查询与
oc\u artists\u标记匹配,我需要从oc\u artists\u简单返回唯一结果
artist\u标记

您的查询中缺少第二个联接表,因此
在联接中包括oc\u artists\u标记

最后,您的查询应该是-

SELECT *
  FROM `oc_artists`, `oc_artists_tags`
 WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
   AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
也可以使用连接或内部连接代替逗号连接-

SELECT *
  FROM `oc_artists` as oa
  join `oc_artists_tags` as oat on oa.artist_id=oat.artist_id 
 WHERE oat.artist_tag LIKE '%klass%';
要获得性能,请遵循以下几点-

  • 您应该只选择所需的列,而不是*

  • 联接字段必须编制索引,最好是这些字段为整数类型

  • 如果可能,请避免like子句左侧的“%”,因为它不会使用索引并减慢查询速度。例如,“klass%”这样的艺术家标签将使用索引,但“%klass%”将不使用


  • 你必须加入另一张桌子。帮助您。

    您也需要加入表
    oc\u艺术家\u标签
    ,您可以通过两种方式实现这一点

    选项1

    SELECT *
      FROM `oc_artists`
      INNER JOIN `test2` on `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
      AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
    
    选项2

    SELECT *
      FROM `oc_artists`,`oc_artists_tags`
      WHERE `oc_artists`.`artist_id`=`oc_artists_tags`.`artist_id`
      AND `oc_artists_tags`.`artist_tag` LIKE '%klass%'
    

    您还需要加入表oc_artists_标记。如果您还添加了查询的现代、显式联接版本,我将进行升级投票。