mysql语法解释
我想知道a.*,c.name。。。a、 访问等手段。换句话说,当我在点之前加上一个字母和点的函数时,我到底指的是什么 下面是我发现这种情况的代码示例: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".
$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用于硬编码前缀。