草庐IT

MySQL 选择一个表中不在另一个表中的字段

我在MySQL数据库中有2个表:Table1:id,gallerynameTable2:galleryid,使用PHP,我需要根据ID(galleryid)未出现在表2中的ID选择表1中的所有行。示例:表11,flowers2,water3,mountains4,winter表23,...将从表1中返回这些行1,flowers2,water4,winter我不确定该怎么做。我非常擅长MySQL的基础知识,但我怀疑这是我无法理解的JOIN或UNION。感谢任何帮助。 最佳答案 试试这个:SELECT*FROMtable1WHEREid

mysql - 如何选择分层 mysql 表中节点的所有父节点?

我有一个MySQL表,它表示树形GUI组件的数据,这是我的表的结构:treeTable(idINTNOTNULLPRIMARYKEY,parentIdINT,nameVARCHAR(255));parentId是一个自引用外键。现在我想编写一个存储过程,它获取节点ID并返回包含该节点及其所有父节点的结果集。例如,假设我的表中填满了以下数据:1,null,'root'2,1,'level_1'3,2,'level_2'现在我想获取节点3的所有父节点(节点1和2)并返回一个包含所有树记录的结果集。有人可以帮帮我吗? 最佳答案 好问题。在

mysql - 如何选择分层 mysql 表中节点的所有父节点?

我有一个MySQL表,它表示树形GUI组件的数据,这是我的表的结构:treeTable(idINTNOTNULLPRIMARYKEY,parentIdINT,nameVARCHAR(255));parentId是一个自引用外键。现在我想编写一个存储过程,它获取节点ID并返回包含该节点及其所有父节点的结果集。例如,假设我的表中填满了以下数据:1,null,'root'2,1,'level_1'3,2,'level_2'现在我想获取节点3的所有父节点(节点1和2)并返回一个包含所有树记录的结果集。有人可以帮帮我吗? 最佳答案 好问题。在

php - 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

我已经阅读StackOverflow问题大约15分钟了,每一个问题似乎都与我阅读的前一个问题相矛盾。Bcrypt、SHA1、MD5等。我目前使用MD5我的密码,但我想让我的数据库更安全以防万一。我知道这个问题已被问过一百万次,但我似乎无法在其他任何地方找到合适的答案。谢谢。 最佳答案 你看到矛盾的答案是因为没有正确的答案。您应该使用您的应用程序可以支持的最安全的方法。更安全=更多开销。MD5已经splinter和破裂。根据thisarticle,SHA1坏了。不过还没有破解。bcrypt没有(据我所知)被发现被破坏。如果有足够的CP

php - 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

我已经阅读StackOverflow问题大约15分钟了,每一个问题似乎都与我阅读的前一个问题相矛盾。Bcrypt、SHA1、MD5等。我目前使用MD5我的密码,但我想让我的数据库更安全以防万一。我知道这个问题已被问过一百万次,但我似乎无法在其他任何地方找到合适的答案。谢谢。 最佳答案 你看到矛盾的答案是因为没有正确的答案。您应该使用您的应用程序可以支持的最安全的方法。更安全=更多开销。MD5已经splinter和破裂。根据thisarticle,SHA1坏了。不过还没有破解。bcrypt没有(据我所知)被发现被破坏。如果有足够的CP

php - MYSQL 从表中选择,获取表中最新/最后 10 行

最好、最简单的方法是什么?我目前的查询是:SELECT*FROMchatWHERE(userID=$sessionANDtoID=$friendID)OR(userID=$friendIDANDtoID=$session)ORDERBYidLIMIT10不过这显示前10行,而不是后10行。编辑:我想要最后10行(是的,DESC这样做)但是我希望它们按升序返回。 最佳答案 要反转顺序(因此得到最后10个而不是前10个),请使用DESC而不是ASC编辑根据您的评论:SELECT*FROM(SELECT*FROMchatWHERE(use

php - MYSQL 从表中选择,获取表中最新/最后 10 行

最好、最简单的方法是什么?我目前的查询是:SELECT*FROMchatWHERE(userID=$sessionANDtoID=$friendID)OR(userID=$friendIDANDtoID=$session)ORDERBYidLIMIT10不过这显示前10行,而不是后10行。编辑:我想要最后10行(是的,DESC这样做)但是我希望它们按升序返回。 最佳答案 要反转顺序(因此得到最后10个而不是前10个),请使用DESC而不是ASC编辑根据您的评论:SELECT*FROM(SELECT*FROMchatWHERE(use

php - 如何使用 PHP 为 MySQL 表中的每一行重新分配 AUTO_INCREMENT 列

我有一个图片库,网站成员可以将图片上传到该图片库。上传图片时,会写入MySQL行,包含有关图片、成员等的各种信息。此行使用AUTO_INCREMENT创建其ID,以便getimage.php?id=XX可以获取要显示的图像。我使用for循环遍历ID以在图库中显示图像。如果我删除第5行/图像,例如,AUTO_INCREMENT从123456789变为12346789。我想从头开始为MySQL表中的每一行重新分配ID。所以12346789变成了12345678。我该如何实现呢? 最佳答案 我发现它可以完美且快速地工作,所以这里是:ALT

php - 如何使用 PHP 为 MySQL 表中的每一行重新分配 AUTO_INCREMENT 列

我有一个图片库,网站成员可以将图片上传到该图片库。上传图片时,会写入MySQL行,包含有关图片、成员等的各种信息。此行使用AUTO_INCREMENT创建其ID,以便getimage.php?id=XX可以获取要显示的图像。我使用for循环遍历ID以在图库中显示图像。如果我删除第5行/图像,例如,AUTO_INCREMENT从123456789变为12346789。我想从头开始为MySQL表中的每一行重新分配ID。所以12346789变成了12345678。我该如何实现呢? 最佳答案 我发现它可以完美且快速地工作,所以这里是:ALT

php - 从时间戳超过一天的 MySQL 表中删除行?

我发现了完全相同的问题here.但这对我不起作用。我已经对其进行了一些修改,对其进行了操作,但我无法弄清楚。我正在尝试删除超过一天的行。这是我的代码:if(isset($_POST['prune'])){$sql="DELETEFROMlogsWHEREtime我想这是一个相当简单的问题,但它让我很烦。我将不胜感激。如果有所不同,该列是TIMESTAMP类型。编辑:显然我是个白痴。我与您联系的问题与SQLite3有关。所以现在我的问题是,我怎样才能在MySQL中做到这一点? 最佳答案 你可以减去一个区间:DELETEFROMlogs