草庐IT

zend_db_select

全部标签

php - SQL 查询将多个值匹配到 select 语句中的一个字段

我想选择列A的不同值,其中列B=集合S的任何成员。有没有办法直接在SQL中执行此操作而无需循环然后在代码中过滤?谢谢编辑:集合S是一个PHP数组。这有什么不同吗? 最佳答案 将IN子句与值列表或子查询一起使用(不确定MySql是否支持,因为我使用的是Oracle)。匹配项可以在多个列上。SELECTcolumn_aFROMmytableWHEREcolumn_bIN(1,2,3)SELECTcolumn_aFROMmytableWHEREcolumn_bIN(SELECTcolumn_cFROMmyothertable)

mysql - 相当于 "SELECT * FROM (SELECT table_name FROM...)"的东西?

此查询会运行,但它会生成一个表的名称作为结果,而不是实际从该表中进行选择。SELECTT.*FROM(SELECTtablenameFROMListOfTablesWHEREid=0)AST其中ListOfTables包含id=0,tablename='some_table',我想返回与我直接编写的相同的结果集:SELECT*FROMsome_table在MySQL5中是否有本地方法来执行此操作,还是我必须在应用程序中执行此操作? 最佳答案 要在MySQL中执行此操作,您需要创建一个preparedstatement您只能从user

mysql - Zend Framework 中的更新查询

这个查询有什么问题???我需要这个查询。UPDATEuser_preferencesSETuser_preferences_value='2'WHEREuser_preferences_name='is_user_package_active'ANDuser_id='$user_id'ANDphone_service_id='$phone_service_id';上面的查询等于下面的ZF查询functionDeactivate_Service($user_id,$phone_service_id){$DB=Zend_Db_Table_Abstract::getDefaultAdapte

php - 什么是更快的 file_exists 或 DB 检索?

我目前正在调整为网站存储图像的方式。对于每个用户,我都想看看他们是否有个人资料图片,我通过检查文件是否存在于他们的文件夹结构中来做到这一点。这比在数据库表中存储/检索图像名称更快吗?我当前的file_exists代码如下所示:$gender=($gender==1)?'female':'male';$filename=SITE_ROOT.$this->img_url.$user_id.'medium_thumb.jpg';if(file_exists($filename)){$filename=$this->img_url.$user_id.'medium_thumb.jpg?v='.

MySQL SELECT 唯一列,其中其他列为最大值

我有这样的tableid|serial_num|version|.....1|1|1|.....2|2|1|.....3|2|2|.....4|3|1|.....5|4|1|.....6|5|1|.....7|5|2|.....8|5|3|.....现在我要选择的是获取具有最大版本和唯一serialn_num的行...结果是:id|serial_num|version|.....1|1|1|.....3|2|2|.....4|3|1|.....5|4|1|.....8|5|3|.....我的SQL有点复杂,这就是为什么我不使用MAX()来解决问题...我几乎没有左连接等...有什么想法

mysql - SELECT 的结果到新表中

嗨,有人知道如何将SELECT的结果添加到新表中吗?SELECTPostcode,Punten1,Punten2,Punten3,Punten4FROMmain_inboedel,ouderdom,levensfase,inkomen,oppervlakteWHEREmain_inboedel.Ouderdomnummer=ouderdom.OuderdomnummerANDmain_inboedel.Levensfasenummer=levensfase.LevensfasenummerANDmain_inboedel.Inkomennummer=inkomen.Inkomennum

MySQL:在 SELECT 语句中获取循环记录

我有一个表ALL_DEGREES,其中包含一个索引列DEGREE。DEGREE3367101110174182189213257258299正如我们所知,该列的最大值可以是360。现在,如果我知道一个特定的度数,比如257,我喜欢获取包含257度和接下来7度的行,即257、258、299、33、67、101、110有什么方法可以编写SELECT查询来执行此操作? 最佳答案 您可以使用:SELECTDEGREEFROMALL_DEGREESORDERBYCASEWHENDEGREE>=257THEN0ELSE1END,DEGREELI

sql - 如何使用 Select 语句将值插入到 MYSQL 表中

好吧,这个和我上一个很相似,但我不明白......!我正在尝试以下操作:Insertintotableb(Selectcolumn_1fromtable_awhereID=1),(Selectcolumn_2fromtable_awhereID=1),0,(Selectcolumn_3fromtable_awhereID=1);但我总是遇到语法错误...!我认为我正在尝试做的事情是合乎逻辑的。来自德国的问候,感谢您的回答! 最佳答案 非常接近-使用:INSERTINTOTABLE_BSELECTcolumn_1,column_2,c

mysql - zend 适配器 beginTransaction() 和 commit() 失败

我遇到了一个奇怪的问题Zend_DB_Adapter的beginTrasaction()和commit()方法似乎没有按预期工作。我有包含在beginTrasaction()和commit()方法中的INSERT语句(在FOR循环中)。但是即使发生如下错误,我仍然看到已经插入了一些行,而我期望由于发生错误而不会发生提交。我无法理解为什么。有人可以帮忙吗。谢谢。SQLSTATE[23000]:违反完整性约束:1062键“PRIMARY”的重复条目“0”代码块如下:**$localDB->beginTransaction();**try{echo$localDB->isConnected(

php - MySQL : select the last action of each user

我有一个这样的表:ActionTimeUserIDScore2011-08-1512:06:001142011-08-1514:45:002172011-08-1612:17:00120我想找出每个用户在他们最后一个Action中的分数和Action时间。(如上所示)我知道我可以像这样一一完成:SELECT*fromMyTableWHEREUserID=?ORDERBYActionTimeDESCLIMIT1但是我们有数百个不同的UserID(当然它还在不断增加)。这将导致大量的PHP到MySQL通信,这是NotAcceptable。我只是想知道是否可以一次执行/通信获取所有行?