Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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语法解释_Sql_Mysql_Syntax - Fatal编程技术网

mysql语法解释

mysql语法解释,sql,mysql,syntax,Sql,Mysql,Syntax,我想知道a.*,c.name。。。a、 访问等手段。换句话说,当我在点之前加上一个字母和点的函数时,我到底指的是什么 下面是我发现这种情况的代码示例: $query = "SELECT a.*, c.name as categoryname,c.id as categoryid, ". "c.alias as categoryalias, c.params as categoryparams". " FROM #__k2_items as a".

我想知道a.*,c.name。。。a、 访问等手段。换句话说,当我在点之前加上一个字母和点的函数时,我到底指的是什么

下面是我发现这种情况的代码示例:

$query = "SELECT a.*, c.name as categoryname,c.id as categoryid, ".
         "c.alias as categoryalias, c.params as categoryparams".
        " FROM #__k2_items as a".
        " LEFT JOIN #__k2_categories c ON c.id = a.catid";

        $query .= " WHERE a.published = 1"
        ." AND a.access <= {$aid}"
        ." AND a.trash = 0"
        ." AND c.published = 1"
        ." AND c.access <= {$aid}"
        ." AND c.trash = 0"
        ;

它们是表名。因此,您也在匹配表名:a是所有表的名称都与uuuk2_项相匹配

点前的单词是表名,点后的单词是列名。在本例中,a转换为_k2_项目,c转换为_k2_类别。这用于更简短、可读性更强的SQL。

如果查看FROM子句,您会看到:

FROM #__k2_items as a
LEFT JOIN #__k2_categories c ON c.id = a.catid
在LEFT JOIN子句中,您可以看到:

FROM #__k2_items as a
LEFT JOIN #__k2_categories c ON c.id = a.catid
这分别将uu k2_items表和u k2_categories分别别名为a和c。在这种情况下,它只是为了节省输入并提高查询的可读性


点将列名与表名相关联,以便MySQL知道要查找哪些表,以防查询涉及的多个表中有同名的列。也就是说,它解决了列的模糊性。

您正在给表/视图添加别名。FROM _k2_items作为一种手段_k2_项将被称为别名,因此您不必使用长表名

这:

意思与此相同:

SELECT #__k2_items.*, #__k2_categories.name as categoryname, #__k2_categories.id as categoryid, ...
a、 *:从表a中选择所有字段,表a实际上是具有“as”关键字指定的不同别名的表“\uu k2\u items”。 c、 名称和其他类似的表达式:从表“c”中选择字段“名称”,这也是表“k2”类别。 c、 别名为categoryalias和其他类似表达式:重命名别名将c.alias中的字段“alias”重命名为“categoryalias”。 基本上,正如其他人所说:

点之前的任何内容都是表名,表名之后的任何内容都是字段名。 用于更改名称的“as”语句。将有用的名称作为SQL查询的输出非常有用。例如,您可能要从两个表中选择两个平均值,一个是博士生平均值,另一个是MSc学生平均值,因此您可以更改字段的名称,以便更容易理解哪个平均值来自哪个表。 有时为了使语法更简单,特别是当您从许多表中选择字段时,可以像对“a”和“c”那样重命名表。 a、 Something是指表a中的Something列。在语句中,您在表上创建了别名:

从_k2_项目作为 左连接uu k2_类别c

__k2_项目别名为a,而uu k2_类别别名为c

因此,选择一个*,c.name作为categoryname,c.id作为categoryid,c.alias作为categoryalias,c.params作为categoryparams将从u k2_项目中选择所有字段,而字段id、别名和参数将从u k2_类别中选择


希望对您有所帮助。

如何将记录插入表中\uuuuk2\u项:

$db = &JFactory::getDBO();

$query = "INSERT INTO jos_k2_items (`title`, `alias`, `catid`, `published`,
         `introtext`, `fulltext`, `video`, `gallery`, `extra_fields`,
         `extra_fields_search`, `created`, `created_by`, `created_by_alias`,
         `checked_out`, `checked_out_time`, `modified`, `modified_by`,
         `publish_up`, `publish_down`, `trash`, `access`, `ordering`, `featured`,
         `featured_ordering`, `image_caption`, `image_credits`, `video_caption`,
         `video_credits`, `hits`, `params`, `metadesc`, `metadata`, `metakey`,
         `plugins`)
         VALUES
         ('".$title."', '".$title."', ".$catid.", 0, '<p>".$introtext."</p>',
          '', NULL, NULL, '".$extra_fields."', 'extra_fields_search', now(), 62,
          '', 0, '0000-00-00 00:00:00', '', 62, '', '0000-00-00 00:00:00', 0, 0,
          5, 0, 0, '', '', '', '', 0, '', '', 'robots=\nauthor=', '', '')
";

$db->setQuery($query);
$db->query();  

k2项目指的是什么?是一个MySQL注释分隔符,我很确定表名在SQL查询中不是字面意思。@Bolt:这是Joomla用来替换数据库前缀的地方。\uu已替换为配置文件中定义的该安装的存储前缀…@ircmaxell:Ooh,谢谢。是的,通常有人会比我快7秒!:--0.5,因为不需要麻烦使用SQL转义参数-0.5用于硬编码前缀。