草庐IT

SELECT-INSERT

全部标签

php - 使用 Symfony 和 Doctrine 在数据库中使用 INSERT 时忽略重复项

我有一张tableCREATETABLE`sob_tags_articles`(`tag_id`int(11)NOTNULL,`article_id`int(11)NOTNULL,`id`int(11)NOTNULLauto_increment,PRIMARYKEY(`id`))ENGINE=MyISAMAUTO_INCREMENT=112并尝试用Doctrine保存一个对象:$sbTagsArticles=newSobTagsArticles();$sbTagsArticles->article_id=$pubId;$sbTagsArticles->tag_id=$tagId;$sb

MYSQL INSERT 或 UPDATE IF

在网上浏览了一段时间,似乎无法找到与我想要的类似的东西。我知道这与我编写查询的方式有关,但我们将不胜感激。我想做的事情的基础是:如果表不存在则插入一些项目如果项目确实存在则更新它以以下格式存在:名称、条形码、项目、数量、位置、价格和日期name-可以在多行中使用条形码-用于特定项目,但可用作多个位置item-与条形码相同,但包含名称数量-不言自明位置-这可以是不同的位置价格-附加到特定项目日期-上次购买该商品的时间棘手的是,一个“名称”可以在不同位置以不同价格包含多个项目(条形码和项目)。这个想法是,客户可以看到他们在设定的时间购买一件商品的价格,因此他们知道他们需要卖多少钱。但是,他

sql - 同一张表的两个外键。如何编写此 SELECT 语句?

用户表user_idusernamethumb_idfullimage_id1jprescott14152lpausch1819图片表image_idpath14jprescott/small.jpg15jprescott/big.jpg16msamuels/small.jpg17msamuels/big.jpg18lpausch/small.jpg19lpausch/big.jpg现在,我该如何编写SELECT语句来检索具有缩略图和全图路径的用户?问题在于同一张表有两个外键。 最佳答案 你做了两个连接:SELECTu.userna

mysql - 错误代码 13,SELECT INTO OUTFILE 问题

我想了解为什么我在使用INTOOUTFILE命令时一直遇到问题。我总是得到这个错误:ERROR1(HY000):Can'tcreate/writetofile'/var/www/p1.txt'(Errcode:13)SELECTpasswordFROMmysql.userWHEREuser='root'INTOOUTFILE'/var/www/p1.txt';有用的细节:网络应用程序:DVWA(本地主机)(用于学习目的)服务器:Apache/2.2.14(Ubuntu)-PHP/5.3.2MySQL版本5.1.63操作系统LinuxBacktrack5r3。我正在以root身份运行命令

mysql - 从 MySQL 中的 TRIGGER 中更改 LAST_INSERT_ID()

我有一个BEFOREINSERTTRIGGER用于计算AUTO_INCREMENT列的值(id_2)。id_1|id_2|data1|1|'a'1|2|'b'1|3|'c'2|1|'a'2|2|'b'2|3|'c'2|4|'a'3|1|'b'3|2|'c'我有PRIMARY(id_1,id_2)并且我正在使用InnoDB。之前,该表使用的是MyISAM,我没有遇到任何问题:id_2被设置为AUTO_INCREMENT,因此id_1的每个新条目会生成新的id_2在其自己的。现在,在切换到InnoDB之后,我有这个触发器来做同样的事情:SET@id=NULL;SELECTCOALESCE(

php - mysql_insert_id 和 last_insert_id 错误行为

我有这张tableCREATETABLEIFNOTEXISTS`t5`(`id`int(11)NOTNULLauto_increment,`a`int(11)NOTNULL,`b`int(11)NOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`a`(`a`,`b`))ENGINE=InnoDBDEFAULTCHARSET=latin1;a_b是唯一键。我有这样的php代码$db=DBFactory::getInstance();$db->selectDB('test');$db->query("insertintot5(a,b)values(1,1)onduplic

mysql - MySQL中SELECT一个文本列的场景

mysql如何SELECTFROM具有一个或多个TEXT列的表?假设这个查询:SELECTcontentFROMpostsWHEREid=1据我所知,TEXT类型存储在磁盘中并在表中有一个指针。那么这个查询是如何运作的呢?哪种场景可以?1:MySQL加载与该表相关的所有文本,然后开始在表中搜索。找到#1,获取内容并返回行。(预加载所有TEXT)2:MySQL在表中搜索,找到#1,从磁盘加载与当前匹配行相关的特定TEXT并返回行。(类似于延迟加载!!)或者MySQL可能以另一种方式工作!以及其中包含TEXT列的非常大的表如何降低SELECT和读取速度? 最佳答

mysql - mysql中如何使用select语句调用存储过程

我有这样的调用语句CALLreport_procedure('2013-02-01',now(),'2015-01-01','1');我想在选择查询中使用它。我已经试过了Select*from(CALLreport_procedure('2013-02-01',now(),'2015-01-01','1'));但出现错误。喜欢ErrorCode:1064.YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear(CALLrep

php - 通过 PHP 使用 LAST_INSERT_ID()?

当我在MySQL控制台中执行以下命令时,它工作正常:INSERTINTOvideos(embed_code)VALUES('testcodehere');SELECTLAST_INSERT_ID();但是,当我通过PHP执行上述查询时,结果为空。在数据抽象下,我使用了一个名为DB的数据库访问类。这就是我通过PHP尝试上述查询的方式:$embedCode=htmlentities($_POST['embed_code']);//Insertvideoindatabase**WORKS**DB::query("INSERTINTOvideos(embed_code)VALUES('$emb

mysql - 为什么大于与等于在 MySQL SELECT 中有所不同?

我有一个很大的MyISAM表。它接近100万行。它基本上是一个项目列表和一些关于它们的信息。有两个指标:主要:项目IDdate(日期)和col(int)。我运行两个查询:SELECT*FROMtableWHEREdate='2011-02-01'ANDcol第一个在~0.0005秒内完成,第二个在~0.05秒内完成。那是100倍的差异。我期望这两者以大致相同的速度运行是错误的吗?我一定不是很了解指数。我怎样才能加快第二个查询? 最佳答案 不管是Mysql还是归结为基本的算法理论。大集合上的大于和小于操作比恒等操作慢。对于大型数据集,