草庐IT

mysql - 如果 null 存在超过特定数量,则删除行

我有一个像这样的表:id|name1|name2|name31|asa|NULL|das2|NULL|NULL|asas我想删除具有两次或更多次NULL值的每一行(这里是id=2的行)我已经用一个小的PHP脚本做到了,但我想知道是否可以用mysql查询来完成我是mysql的新手,所以我还没有尝试任何东西! 最佳答案 您将希望使用带有多个过滤器的WHERE子句,每个过滤器检查列是否为null:deletefromyourtablewhere(name1isnullandname2isnull)or(name1isnullandname

MYSQL - 按字母顺序对 2 列进行排序,如果第一列为空,则使用第二列

我正在尝试对引用两列的mysql数据库按字母顺序排序,其中company_name是主要排序,但如果没有company_name,则按last_name排序。我将在下面列出一个示例。公司名称:(主要排序列)1ABCcargo2天才加热34个极限window姓氏:(次要列)1科比2罗杰斯3燧石4刘易斯排序如下:1ABCcargo3燧石2天才加热4个极限window这是可能的还是我应该将它们合并到一个数组中并使用php对它们进行排序? 最佳答案 只需使用大小写选择一个列作为“名称”并按它排序。最佳示例。SELECTCASEWHENcom

mysql - 如果某个值存在,则从表中选择记录,如果不存在,则选择其他记录

我有一个这样的表:projectName|info--------------------all|i1all|i2all|i3name1|i4name1|i5all|i6我有一个检查项目名称的查询。如果它存在于表中,我只需要选择有关该特定项目的信息。如果不存在,我必须获取“所有”项目的信息。例如,如果我输入的是“name1”,我的输出应该是:i4i5如果我输入的是“name2”,我的输出应该是:i1i2i3i6有没有办法在mysql查询中执行此操作?我查找了示例,但我发现的所有内容都是关于从两个不同的表中检索信息的。 最佳答案 一种

php - 如果 mysql 表不存在则创建

我用php/mysql的工作不多,但我需要一个我认为相对简单的任务:检查一个表是否存在,如果不存在则创建它。我什至无法获得有用的错误消息,并且数据库中没有创建表。我的语法显然有问题。ConnectedtoMySQL";$mysql_connexn=mysql_connect("localhost","root","");//redundant?//2.CONNECTTOTHESPECIFIEDDB,confirmconnection$db="weighttracker";mysql_select_db($db)ordie(mysql_error());echo"ConnectedtoD

php - MySQL - 如果存在则更新否则用两个键插入

我有一个包含字段foreign_key_id|的表值1|value2,如果foreign_key_id和value1匹配,我想更新value2。如果foreign_key_id或value1不存在,我想插入一个新行。有比让PHP使用select语句然后分支到更新或插入更好的方法吗?编辑:value2可以和数据库中的值相同,所以我无法运行和更新,查看affected_rows是否为0,如果是则运行和插入。 最佳答案 尝试使用IFEXISTS来确定是执行UPDATE还是INSERT语句。您可以在一个PHP语句/查询中执行此操作。IFEX

php - 如果不存在则使用 PDO 创建数据库

我正在尝试创建一个数据库安装PHP文件,该文件首先尝试使用我执行的PDO准备语句创建一个数据库(如果它不存在),然后我想连接到它。这是我会怎么做吗?还是我在这里遗漏了什么?$mysql=newPDO("mysql:host=localhost",$dbusername,$dbpassword);$pstatement=$mysql->prepare("CREATEDATABASEIFNOTEXISTS$dbname");$pstatment->execute();$dbconn=newPDO("mysql:host=localhost;dbname=$dbname",$dbuserna

mysql - sql 如果存在则更新否则插入不工作

我有一个包含3个通用键的表,它们也是外键。这是我的查询——IF(EXISTS(SELECT*FROMtable1WHEREcol_1=4))BEGINUPDATEtable1SETcol_2=3,col_3=100WHEREcol_1=4ENDELSEBEGININSERTINTOtable1(col_1,col_2,col_3)VALUES(4,2,27)END这给了我一个语法错误。引擎使用了InnoDB。整理:utf8_swedish_ci我也试过了——INSERTINTOtable1(col1,col2,col3)VALUES(:val1,:val2,:val3)ONDUPLIC

mysql - 如果帖子只有一个特定标签,则过滤查询中的帖子

根据标签查询wordpress帖子可能如下所示(如果我正确拼凑-我从查询中删除了不相关的部分):SELECTwposts.IDASID,wposts.post_title,wposts.post_status,wposts.post_name,tag_terms.term_idAStag_idFROM`wp_posts`ASwpostsINNERJOINwp_term_relationshipsAStag_term_relationshipsON(wposts.ID=tag_term_relationships.object_id)INNERJOINwp_term_taxonomyAS

mysql - 如果行存在,则删除 mysql 中的行

我有这样的查询:IFEXISTS(SELECT1FROMtable1WHEREcol1=?LIMIT1)THENDELETEFROMtable2WHEREcol2=?ENDIF但我不知道为什么上面的查询不起作用。这也不起作用:IFEXISTS(SELECT1FROMtable1WHEREcol1=?LIMIT1)BEGINDELETEFROMtable2WHEREcol2=?ENDMySQL告诉我有语法错误,我该如何解决? 最佳答案 您可以将条件移动到DELETE的WHERE子句中以达到相同的效果,如下所示:DELETEFROMta

Mysql:如果行不存在则插入,否则更新..有更简单的命令吗?

学习Mysql,问题一大堆...我可以通过简单的方式达到预期的效果:$mysqli->query("INSERTresultsSETuser_id='".$user_data[0]['user_id']."',logo_id='".$mysqli->real_escape_string($_GET['logo_id'])."'");$mysqli->query("UPDATEresultsSETresult_tries=result_tries+1WHERElogo_id='".$mysqli->real_escape_string($_GET['logo_id'])."'ANDuse