草庐IT

php - SQL事务和表SELECT LOCK说明

我有一个关于在线交易的问题,想用SELECT和UPDATE查询澄清以下问题。我将使用下面的示例向您解释这一点。X正在进行在线交易。他的账户余额是1000美元。他打算购买200美元的商品,之后他的帐户余额应该是800美元。那也行;现在让我进一步说明这一点BeginDBtransaction.Step1:accountbalanceis$1000{Selectthebalancefromadifferentscript}Step2:Buysomethingfor$200{Selectthebalancefromanotherscript}Step3:Remainingbalance$800

MYSQL IF SELECT COUNT() 大于零 select * from table else return nothing found

我正在寻找一种方法来进行如下查询:MySQL:示例:IFSELECTCOUNT(column_XX)WHEREcolumn_XX=value_XXFROMtable_XX大于零(0)然后SELECT一切或SELECT*FROMthattable_XXWHEREcolumn_XX=value_XX和返回所有数据...否则返回“未找到”或仅返回零(0)简单来说,如果列中的所有值都大于零,我想从表列中选择所有数据,否则仅选择值>=1并返回所有值。这里可以应用哪个魔法来在单个查询中完成它?...我真的卡住了,谢谢。 最佳答案 你可以这样尝试

php - 如何使用 IN,FIND_IN_SET 比较逗号分隔字符串中的多个值?

我有多个值,用逗号分隔(1,3,5)想与(2,3,4,5,7,5)比较,这个集合引用列值。所以它应该返回3和5这个值是动态的我用过SELECT*FROMtableWHEREFIND_IN_SET('3',('2,3,4,5,7,5'))ANDFIND_IN_SET('5',('2,3,4,5,7,5'))等等但是让我知道任何更好的解决方案非常乏味。 最佳答案 简答你应该避免这种情况。虽然它实际上可以完成,但您当前的架构至少违反了firstNF.那是糟糕的情况。仅当您需要使用整个字符串而不是单独的值本身时,存储分隔符分隔的列表才适用。

mysql - SQL - 1388 字符 SQL 查询。 (必须是更简单的解决方案吗?)

我写了一个应该很简单的SQL查询,结果并不是那么简单。我有一个包含120万个单词(多种语言)+的数据库。我的侄女问我可以用字母jxtehmrungce中的5个字母组成多少个单词。然后我决定进行测试。好吧,事实证明编写这样的查询很容易。不过!~一定有更简单的解决办法吧?字符越多,查询越长。下面,它按字母顺序遍历所有字符(字母)SELECTcount(DISTINCT`word`)as`numrows`FROM`words`WHERELENGTH(`word`)='5'AND`chars`REGEXP'([g{0,1}+]|[i{0,1}+]|[l{0,1}+]|[m{0,1}+]|[n{

MySQL INSERT INTO ... SELECT 或默认值

我正在处理以下查询:INSERTINTOa(id,value)VALUES(_id,(SELECTvalueFROMbWHEREb.id=_id));表a:id、value(有默认值)表b:id,值表b不包含所有请求的值。所以SELECT查询有时会返回0行。在这种情况下,它应该使用a.value的默认值。这有可能吗?编辑:标记为已解决的帖子评论中出现空栏的解决方法。 最佳答案 您可以将值包装在coalesce(max(value),default_value)INSERTINTOa(id,value)VALUES(_id,(SELE

mysql - 插入 2(多个)选择?

我想做的是这样的:INSERTINTOLIVRE(id_livre,id_client,id_produit)VALUES(null,SELECTid_clientfromCLIENTwheredistributeurlike"%Traffic%",SELECTid_produitfromPRODUITwherenum_serie_produit=1401000);1SELECT有可能吗?我试过类似的东西:INSERTINTOLIVRE(id_livre,id_client,id_produit)SELECTnull,C.id_client,P.id_produitFROMLIVRE,

mysql - SQL 在每个 SELECT 请求中获取 ROW_NUMBER 和 COUNT

我正在构建一个网格机制,我需要从数据库中检索数据(总计或找到的记录),只检索这些记录的范围,其中包含一个row_number。我使用SqlServer进行测试,但我也需要在Oracle和MySql上支持它。这就是我正在尝试的,但我无法让它工作:SELECT*FROM(SELECTROW_NUMBER()ASRN,COUNT(*)ASTOTALCN,Id,Name,PhoneFROMMyTableWHEREDeleted='F')WHERERN>100ANDRN思路是:MyTable->numberofrecords:1000SelectId,Name,PhonefromMyTablew

php - "SELECT"命令的准备语句失败,在 PHP 中使用 mysqli

我已经能够使用mysqli(在PHP中)执行多个准备好的语句。但是,由于某种原因,当我尝试运行“SELECT”命令时,准备好的语句总是遇到错误。例如,以下行将成功:$stmt=$mysqli->prepare("UPDATEeventsSETcategory='m'WHEREid=(?)");但是,以下行将失败:$stmt=$mysqli->prepare("SELECT*FROMeventsWHEREid=(?)");当我说失败时,我的意思是接下来的三行将为UPDATE命令返回1(表示更改了一行)...$stmt->bind_param('i',$id);$stmt->execute

mySQL 子查询比 2 个单独的查询慢

我正在为一个简单的子查询而烦恼。我有以下查询女巫运行了30多秒:SELECTDISTINCTSUBSTRING(6pp,1,4)ASpostcodeFROM6ppWHEREgemeenteIDIN(SELECTgebiedIDFROMtmp_orderimportWHEREtypeGebied='Gemeente'ANDidorder=1733ANDSTATUS=TRUE);解释:如果我将查询分成2个查询并首先运行IN部分,整个过程不会超过一秒钟。但我当然更喜欢使用一个查询。这些表在MYISAM中。有什么建议吗?更新:以GordonLinoff为榜样。我将SQL更改为:SELECTDI

mysql - SQL通过忽略非字母和非数字来删除重复记录

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭7年前。Improvethisquestion我正在尝试创建一个只保留“yahoofinance”并删除以下数据集中的其他查询的SQL查询。该数据集是InnoDB表的一部分。yahoo/financeyahoo.financeyahoo.financeyahoo-financeyahoo+finan