我的数据库中有一个页面表,每个页面都可以有一个父页面,如下所示:idparent_idtitle10Home20Sitemap30Products43Product153Product264Product1ReviewPage什么是最好的MySQL查询来选择所有页面按父然后子然后子再排序如果有不止一个级别,最多有三个级别。上面的示例将产生所需的顺序:HomeSitemapProductsProduct1Product1ReviewPageProduct2 最佳答案 如果你必须坚持你的模型,我建议这个查询:SELECTp.id,p.t
我正在尝试运行一个存储过程,但由于IF条件而失败。我尝试了不同的方法仍然没有成功。谁能告诉我如何在存储过程中使用IF条件。DELIMITER$$USE`testdb`$$DROPPROCEDUREIFEXISTS`change_parent`$$CREATEDEFINER=`root`@`localhost`PROCEDURE`change_parent`(INnew_parentBIGINT(20),INfolder__idBIGINT(20))BEGINSELECTdirectory_path,nav_depth,idINTO@dirpath,@depth,@parentFROMf
我该怎么做才能获得树的子树的步数。例如我有这样一张表:idtitleparent_id1A02B03C14F35O36D27J68T29P8A//1stepC//2stepF//3stepO//3stepB//1stepD//2stepJ//3stepT//2stepP//3step例如,如果我给出一个像1(id=1)这样的数字,它应该返回1并且id=6它应该返回2作为步骤。我的数据库管理系统是MySQL。 最佳答案 如果你的树不是很深,它可以是一个递归存储过程。像这样的东西(添加适当的条件处理程序)或任何同类的东西,它可以用多种方
我想知道是否可以在Mysql(InnoDB)中使用FK进行逆向查找。原因-我想从数据库中读取类似XML的结构(每个“层”使用一个表),但能够动态地执行此操作。我希望能够通过添加新表和设置FK约束来更新xml结构。为了澄清,假设我们有一个表“parent”,其中包含id(parent_id)和另外两个列(k1和k2)。xml看起来像(省略id):v1v2现在我们添加一个子表,其外键引用parent_id和另一列(ck1)。相同的查询(之后进行一些处理)现在应该给出:v1v2cv1这可能吗?要“SELECT*FROMparent_table”并设置某种参数以返回带有FK的子行?非常感谢!/
我发现SHOWCREATETABLE没有像我期望的那样显示外键约束。为了演示,这里有一个来自MySQLmanual的例子:CREATETABLEparent(idINTNOTNULL,PRIMARYKEY(id))ENGINE=INNODB;CREATETABLEchild(idINT,parent_idINT,INDEXpar_ind(parent_id),FOREIGNKEY(parent_id)REFERENCESparent(id)ONDELETECASCADE)ENGINE=INNODB;mysql>SHOWCREATETABLEchild\G****************
我有一个这样的表:编号姓名父代号然后我想根据他们的id选择某些行,所以像这样:SELECT*FROMTABLEWHEREidIN('1','5','8','9','35')我想从这个查询中也显示父/子关系,例如:idparent-----------10518098359所以最终的输出看起来像这样:1--58--9----35我是否在mysql之外执行此操作,我尝试过使用数组,但无法弄清楚,或者我是否在MYSQL中执行此操作,我也不知道该怎么做。 最佳答案 这是我能够提供的,看起来效果很好。PS-关于格式,我搞不懂:((已修复?)我
我的网站上有不同的内容类型。f.e.-文章、问题、帖子我看到两种存储评论的方法。1)为每种内容类型创建表,如articles_comments、post_comments等。2)创建一个包含字段parent_field和parent_id的表。在“parent_field”中保存类似articles_id或posts_id的内容。所以用explode('_',$parent_field);我可以收到父表名和字段名select"...FROM$tableWHERE$field=$parent_id"第二种方式似乎更灵活,但第一种方式更容易。那么,问题是:如果每天有100+k个主机,哪种方
我有一个只有两个字段的类别表-即id和categoryname-和一个包含字段categoryid的category_parent表和parentid。两者都是categoryid的外键。所以我可以为一个类别设置多个父项或多个子项。我的问题是:如何找到特定类别的所有parent或所有child?“所有parent”是指直系parent以及直系parent的parent等。我需要数组或列表中parent的ID。我更喜欢用C#代码来解决这个问题。 最佳答案 category_parent不是必需的。你可以在一张表上做所有关于类别和父级的
我需要存储一个家庭(即parent的一些child。那些child有自己的child等等......)所以,我创建了一个具有以下结构的表族id child child_id parent_id当我保存一个child时,我会存储一个parent_id。现在,当我想获取给定parent的所有child时,我可以轻松做到。selectchild_idfromfamilywhereparent_id=但是,现在我想获取完整的家庭(给定parent的所有后代)即我想获取所有具有给定parent_id的子项+所有在第一个查询中获取的子项的子项等等。有人可以帮帮我吗?我也是,最初可
假设有一个名为people的表,其中包含以下列:person_id(整数)parent_person_id(整数)名称(可变字符)现在,假设表格已经被填充并且名称值只是字母(A、B、C、D...)。考虑到每个人的parent,我们最终得到一个像下面这样的分层树。这些值的格式为:person_id,parent_person_id,姓名1,1,A2,2,B3,2,C4、3、D5,2,乙6,5,女7,6,G8,6,H考虑上面的结构,A&B是第一代,C&E是第二代,D&F是第三代,G&H是第四代。对于第一代元素,parent_person_id等于元素的person_id。我需要编写一个查询