草庐IT

INSERT-SELECT

全部标签

mysql - 使用 PetaPoco Database.Insert<T> 插入 mysql 时出现问题

我有一个使用PetaPoco重新实现ASP.NET的MembershipProvider、RoleProvider和ProfileProvider的小项目。每个表都有两个公共(public)字段:name和lowered_name。当尝试使用Database.Insert()将新记录插入数据库时​​,我遇到了一个问题,无法插入lowered_name字段。例如,我们有一个名为Category的表CREATETABLE`category`(`name`varchar(100)NOTNULL,`lowered_name`varchar(100)NOTNULL,PRIMARYKEY(`low

PHP PDO Prepared Statement MySQL Count of Select where X LIKE

使用PHPv.5.2.14和PDO-MySQL扩展。我是准备好的陈述的新手。需要创建一个搜索表单(以便用户输入)和一个“选择所有X,其中X喜欢……”的工作查询。代码和结果:$sql='SELECTCOUNT(*)asnum_booksfromt_bookswheretitleLIKE:search_term';//Lateraccessasnum_books$prep=$dbh->prepare($sql);$num=$prep->execute(array(':search_term'=>'%'.$search_term.'%'));$total=$num->fetchColumn(

mysql - 不能在 INSERT MySQL 中使用 UNION?

我有一个工作正常的选择查询。但是,当我将其包装到INSERT语句中时,出现错误。错误1064-您的SQL语法有误;查看与您的MySQL服务器版本对应的手册,了解在'(SELECTDISTINCTNULLASid,NULLAScore_value_id,NULLAStranslation_id'在第3行我可以通过为每个源表使用1个插入来解决这个问题。但是有没有办法用一个查询来完成呢?为什么这不起作用?这是查询。INSERTINTO`some_table`((SELECTDISTINCTNULLAS`id`,NULLAS`core_value_id`,NULLAS`translation_

MySQL SELECT TMP 行 - 开始日期和结束日期之间的日期

我的表包含以下结构:START_DATE|END_DATE|COST2012-11-01|2012-11-05|500.5我想执行一个返回以下结果的SELECT语句:DATE|COST2012-11-01|100.12012-11-02|100.12012-11-03|100.12012-11-04|100.12012-11-05|100.1我可以弄清楚如何将总成本除以开始日期和结束日期之间的天数,但不知道如何为DATE列创建这些“虚拟行”。也许根本不可能。非常感谢任何帮助! 最佳答案 最好的办法是创建一个Calendar表。为了您

mysql - create...select 语句中的外键约束会发生什么变化?

只是想知道当使用CREATE...SELECT语句复制源表时,源表的外键约束会发生什么情况。引用约束会被复制还是被忽略?这是一个例子:CREATETABLEfoo(aint,bint,PRIMARYKEY(a));CREATETABLEsource(idint,aint,PRIMARYKEY(id),FOREIGNKEY(a)REFERENCESfoo(a));CREATETABLEtargetSELECT*FROMsource;所以,我的问题是目标上的属性a是否也指向foo(a)?如果答案是特定于供应商的,我正在寻找MySQL的答案。 最佳答案

mysql select查询优化

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我有两个表testa和testb。CREATETABLE`testa`(`id`INT(10)NOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULTNULL,PRIMARYKEY(`id`));CREATETABLE`testb`(`id`INT(10)NOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULTNULL,`

php - SQL : keep count in row or select count from db

例子:我有2张table-类别-帖子将帖子编号保留在这样的类别中是一种好方法吗类别id|title|posts----+----------+--------1|golf|50----+----------+-------2|soccer|90----+----------+-------帖子id|title|category_id----+----------+--------------1|news1|1----+----------+--------------2|news2|2----+----------+--------------3|news3|1----+-------

MySQL DELETE INSERT 而不是 UPDATE

有没有一种方法可以使用删除->插入而不是使用第一条记录中的字段进行更新?更新示例:TABLE---------ID(int)|VAL_1(VARCHAR)|VAL_2(VARCHAR)消息1:INSERTINTOTABLEVALUES(1,"firstmessage","someval");消息2:UPDATETABLESETID=2WHEREID=1相反,我需要删除第一条记录并插入一条新记录。有没有办法使用这样的消息:INSERTINTOTABLEVALUES(2,VAL_1fromRECORDWHEREID=1,VAL_2fromtherecordWHEREID=1);DELETE

MySQL:SELECT IF() 语句中的 SELECT

我能有这样的东西吗?SELECTIF((SELECTCOUNT(id)FROMtableWHEREid=1)=0,1,)ASAvailable我的目标是选择这个:+---------+|Available|+---------+|1|+---------+仅当没有从此查询中选择行时:SELECTidFROMtableWHEREid=1如果表中存在id=1的行,我希望我的查询返回零行!这可能吗? 最佳答案 SELECT1FROMdualWHERENOTEXISTS(SELECTNULLFROMmytableWHEREid=1)

mysql - 如何在 MySQL 中为 select 锁定一行

这个问题在这里已经有了答案:Howtolockasinglerow(5个答案)关闭9年前。一个程序会从一个表中SELECT几条记录并更新每一行,同时它可以执行多次,这会导致多个进程同时完成同一个任务。如何防止两个不同的进程更新表中的同一行。也就是说,如何保证每个进程都能SELECT不同的记录呢?MySQL中的行选择级别是否有锁?或者在这种情况下,是否有更好的解决方案来防止单行多次更新?