草庐IT

CATEGORY

全部标签

MYSQL: LEFT() 不使用任何索引

我刚刚在使用where条件(例如WHERELEFT(field,4)="abcd")时遇到了mysql问题。我目前正在尝试优化我的查询,但我注意到它没有使用我定义的任何索引。我认为LEFT()有可能使用索引,而SUBSTRING不是?(即在这个问题的答案中提到:MySQLLeft()orSUBSTRING()?)所以在我的例子中,该字段在表image中称为categoryCHAR(6)。为了测试,我定义了各种索引:ALTERTABLEimageADDINDEX`cat`(`category`);ALTERTABLEimageADDINDEX`cat2`(`category(2)`);A

MySQL:获取所有子类别,后代

我将mysql表定义为:类别:category_id、category_name、parent_category_id我正在寻找一个很好的sql查询来检索给定category_id的所有DESCENDANTS。这意味着,它的child,以及它的child的child。如果这有帮助,我们可以假设最大级别数(3)。此查询可以在任何级别(根、级别2、级别3)发送。谢谢!内森 最佳答案 有几种方法可以将树存储在数据库中。在sitepoint上有一篇很棒的文章描述了所有的技术:http://articles.sitepoint.com/art

如果 PRIMARY KEY 被 FOREIGN KEY 引用,则 MySQL REPLACE 的行为与 UPDATE 不同

我有两个表:CREATETABLE`category`(`category_id`int(10)unsignedNOTNULLAUTO_INCREMENT,`user_id`mediumint(8)unsignedNOTNULL,`name`varchar(20)CHARACTERSETasciiNOTNULL,`description`varchar(100)DEFAULTNULL,`repeat_interval`tinyint(3)unsignedNOTNULLDEFAULT'0',`color`mediumint(8)unsignedNOTNULL,PRIMARYKEY(`ca

php - 如何用 PHP 更新两个 MySQL 表?

我的数据库中有2个表,每个表都有一个名为Catergory的列。CategoriesTable-id|category_name1:basic2:midlevel3:highlevel4:profesionalProductTable-id|product|category_name1:adsl1G:basic2:adls2G:midlevel3:adsl3G:highlevel4:adsl4G:profesional当我更新categories表中的*category_name*时,我也想在Products表中更改它,但我不确定该怎么做这个。我无法找到并回答,因为我不知道如何正确措辞

php - 一品多品——PHP MySQL

我有一张表products(id,barcode,catid,name,description,...)我被要求让一些产品可以分配给多个类别。最明显的解决方案是将catid从INT更改为具有分隔值的VARCHAR,即1、2、5,其中1、2和5是各种类别。现在哪个SQL语句可以为我完成这项工作?我想到了find_in_set,但我认为它的作用恰恰相反。 最佳答案 最明显的解决方案是创建一个“交叉表”,您可以在其中进行多对多分配(因为一个类别中可以有多个产品,一个产品可以有多个类别)。该表将如下所示:product_id|categor

mysql - 选择值不存在的 SQL

我有两列product_id和category_id。我想选择所有没有category_id=90的product_id我使用这个查询,但它返回null。我做错了什么?SELECT*FROM`oc_product_to_category`WHERENOTEXISTS(SELECT*FROM`oc_product_to_category`WHEREcategory_id=90) 最佳答案 您没有关联内部查询和外部查询。如果至少有一个产品具有category_id=90,则内部查询将返回一些行,因此NOTEXISTS条件将始终为fals

mysql - 为什么这个 group_concat 不起作用?

我不明白为什么这个GROUP_CONCAT不起作用,就外部查询而言,返回了3行,所以我想以此为基础进行group_concat,但它不喜欢它...http://sqlfiddle.com/#!2/24764/3CREATETABLEnested_category(category_idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(20)NOTNULL,lftINTNOTNULL,rgtINTNOTNULL);INSERTINTOnested_categoryVALUES(1,'ELECTRONICS',1,20),(2,'TELEVISIONS',2,

php - 来自多个类别的项目最佳实践

我正在按类别列出项目,问题是该项目可以在多个类别中。将项目存储在类别中以及如何列出类别及其子类别中的所有项目的最佳做法是什么?我正在使用ZendFramework和MySQL来解决这个问题。感谢您的回复。对不起我的英语:) 最佳答案 所以,您在类别中有层次结构,是吗?它是一个级别(类别和子类别)还是任意数量(child可以有child等)?这将影响解决方案。通常,您会使用多对多关系对类似的事物进行建模,例如:CREATETABLEItem(item_idINTNOTNULL,item_nameVARCHAR(255)NOTNULL)

sql - 运行慢查询的简单 MySQL 表

我有一个非常简单的表,有两列,但有450万行。CREATETABLE`content_link`(`category_id`mediumint(8)unsignedNOTNULL,`content_id`int(10)unsignedNOTNULL,PRIMARYKEY(`content_id`,`category_id`),KEY`content_id`(`content_id`,`category_id`))ENGINE=MyISAM;当我运行一个简单的查询时:SELECT*FROMcontent_linkWHEREcategory_id='11';mysql会占用CPU并在返回大

jquery - db查询时如何处理随机字母大小写实例?

在数据库中按字符串查询时,处理随机大小写字母的最佳方法是什么?有没有一些标准的方法,或者我应该只允许数据库中的条目全部小写,然后再转换它们?现在我在PHP中有这个查询:$get_category="selectcategory_namefromcategorieswherecategory_name=".$some_var;但不确定在处理大写或小写条目时这是否是最佳方式。我使用MySQL。谢谢,亚历克斯 最佳答案 MySQL是否区分大小写取决于排序规则。选择以“_ci”结尾的排序规则(不区分大小写),对该列的查询将使用不区分大小写的