小编fth*_*lla的帖子

MYSQL:如果一个连接的行匹配条件,则排除多个行

我有两张桌子.一个是用户,其中包含字段uid和名称.另一个表是users_roles,其中包含字段uid和rid(role id).

我想要检索没有任何一组提供的角色的用户列表.

例如:

uid | name
----------
1   | BOB
2   | DAVE
3   | JOHN
Run Code Online (Sandbox Code Playgroud)

USERS_ROLES:

uid | rid
---------
1   | 1
1   | 2
1   | 3
2   | 1
3   | 1
Run Code Online (Sandbox Code Playgroud)

我希望能够只查询没有一组rids的用户.例如,排除rid 2和3的查询应该返回DAVE和JOHN,或者排除rids(1,3)的查询应该返回nobody.

mysql sql drupal

4
推荐指数
1
解决办法
4012
查看次数

Bash脚本和行

我的问题是行mysql_query.我需要:

Record 0: 2,text is text,3.23
Run Code Online (Sandbox Code Playgroud)

但是我有:

Record 0: 2
Record 1: text
Record 2: is
Record 3: text
Record 4: 3.23
Run Code Online (Sandbox Code Playgroud)

请帮我.

results=($(mysql --user root -proot test -Bse "select id,name from Object"));

cnt=${#results[@]}

for (( i=0 ; i<${cnt} ; i++ ))
do
    echo "Record No. $i: ${results[$i]}"

    fieldA=${results[0]};
    fieldB=${results[1]};

done
Run Code Online (Sandbox Code Playgroud)

mysql arrays bash

4
推荐指数
1
解决办法
5360
查看次数

为什么"更新CURRENT_TIMESTAMP"在更新相同数据时不会更新?

当我有一个包含以下数据的表格时:

StatementID(int AI) | created_by(int) | changed_when(onUpdate CURRENT_TIMESTAMP)
--------------------------------------------------------------------------------
7                   | 4               | 2013-02-26 12:05:57  
8                   | 4               | 2013-02-26 12:20:12
Run Code Online (Sandbox Code Playgroud)

我有以下查询:

mysql_query('
  UPDATE table 
  SET created_by = 4 
  WHERE statementID=8');
Run Code Online (Sandbox Code Playgroud)

当我编辑语句信息(其他tbl)并且它由上次与同一用户编辑时,changed_when不会更新.

changed_when当我created_by使用相同的数据更新时,为什么字段不会改变?

mysql database timestamp sql-update

4
推荐指数
2
解决办法
3409
查看次数

通过 SQL 中的两列将一张表链接到另一张表

所以我有两张表。首先是姓名及其资格:

用户:

Name    Qualification
---------------------
User1   QualA  
User1   QualB  
User1   QualC  
User2   QualA  
User2   QualD  
Run Code Online (Sandbox Code Playgroud)

然后是第二个表,它将两个资格从第一个属性链接到另一个属性:

属性:

Attribute   Qual1  Qual2
------------------------
Attr1       QualA  QualC    
Attr2       QualB  QualC    
Attr3       QualA  QualD    
Attr4       QualB  QualD    
Run Code Online (Sandbox Code Playgroud)

现在我想查询数据,所以我得到这样的回报:

User     Attribute
------------------
User1    Attr1   
User1    Attr2  
User2    Attr3  
Run Code Online (Sandbox Code Playgroud)

因此,如果名称具有属性所需的两个限定,则它们可以关联在一起。

sql join

3
推荐指数
1
解决办法
1599
查看次数

创建删除触发器

我有一个名为 的表和 一个名为andul_logins的表。我知道,每当我从触发器中删除某个用户时,我都会自动从和中删除同一用户。用户的 id 为at和at和userbaseuserchangesul_loginsuserbaseuserchangesidul_loginsuserIDuserbaseuserchanges

我已经在 mysql (phpmyadmin) 中编写了这个触发器

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins
FOR EACH ROW BEGIN
DELETE FROM userbase WHERE userID = :old.id;
END
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我总是收到错误。但我就是找不到问题所在

#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的“在 ul_logins 上删除后触发 deleteUser FOR EACH ROW BEGIN DELETE FROM us”附近使用的正确语法

我已经用谷歌搜索了,还有另一个解决方案并尝试了这个

DELIMITER |

CREATE OR REPLACE TRIGGER deleteUser AFTER DELETE ON ul_logins
FOR EACH ROW BEGIN
DELETE FROM …
Run Code Online (Sandbox Code Playgroud)

mysql triggers

3
推荐指数
1
解决办法
7677
查看次数

隐藏字符上的MYSQL查询失败?

我一直在努力把可能的“隐藏价值”包起来。

每当我运行此查询

SELECT * FROM LIST WHERE `GROUP_2` = "Yes";
Run Code Online (Sandbox Code Playgroud)

我得到0个结果。

每当我运行此命令时:

SELECT * FROM LIST WHERE `GROUP_2` LIKE 'Yes%';
Run Code Online (Sandbox Code Playgroud)

我能够取得结果。

我已经尝试过使用csv导入的MySQL加载数据使用许多不同的导出和导入参数,但是没有任何效果。GROUP_1和GROUP_2都设置为varchar(55)

我可以运行任何查询以确定此原因或检测隐藏的中断线吗?

ID  name    GROUP_1 GROUP_2
1   Bob     No      Yes
2   Jim     Yes     No
Run Code Online (Sandbox Code Playgroud)

mysql

3
推荐指数
1
解决办法
1924
查看次数

MySQL区分大小写表转换

我有一个PHP代码库,用于以大小写混合的方式编写我们的MySQL表.例如,xar_intakeformgenerator_ChangeLog.

我们的代码也在Windows上运行,在我们知道更好之前,我们将几个数据库导入到Windows服务器上.这导致Windows MySQL将所有表名更改为小写.(xar_intakeformgenerator_changelog).我们现在知道如何防止这种情况发生在新数据库中.(Set lower_case_table_names)并且,代码在Windows服务器上运行良好,因为MySQL并不关心Windows上表格的情况.

这是问题所在.Windows服务器让我们感到悲伤,我们需要将所有数据库移到Linux服务器上.因为所有表名都已转换为小写,所以代码不适用于Linux.幸运的是,Xaraya创建了表映射.因此,理论上,我可以为这些数据库建立一个新的代码库,并更改每个模块的映射以使用小写表.或者,我们可以在将表名导入Linux机器后手动更改表名,以使表格大小写正确.

更改lower_case_table_names不会更正在设置标志之前损坏的数据库.这些都具有小写表名.

我对这两种选择并不狂热.有人知道一种巧妙的方法来处理这个问题吗?

php mysql linux windows

2
推荐指数
1
解决办法
7263
查看次数

mySQL - 整个上个月

我试图使用以下语句检查上个月发生的所有记录.

Select  *  from statistics 
where statistics_date  
BETWEEN date_format(NOW() - INTERVAL 1 MONTH, '%Y-%m-01') 
AND last_day(NOW() - INTERVAL 1 MONTH ) 
Run Code Online (Sandbox Code Playgroud)

但是,选择不包括最后一天.我想要的是从本月的第一个月到本月的最后一个月.

mysql sql date between

2
推荐指数
1
解决办法
1911
查看次数

类stdClass的对象无法转换为字符串 - 无法找到解决方案

我有以下代码:

if ($difference)
{
    $.post("recover_functions/upload_photos.php",
           {upload:$difference},
           function(response)
           {
               alert($difference);
               if (response.status)
                   alert("Successfully uploaded photos");
               else
                   alert(response);
            });
}
Run Code Online (Sandbox Code Playgroud)

警报将显示:

{"difference":"[{\"aid\":\"100000543443572_1073741825\",\"backdated_time\":null,\"caption\":\"\",\"link\":\"http:\\\/\\\/www.facebook.com\\\/photo.php?fbid=614604095234366&set=a.614604001901042.1073741825.100000543443572&type=1\",\"pid\":\"100000543443572_2384218\",\"place_id\":null}]"}
Run Code Online (Sandbox Code Playgroud)

我得到这样的'POST请求:

$string_diff = $_POST['upload'];
$array_diff  = json_decode($string_diff);

echo $array_diff;
Run Code Online (Sandbox Code Playgroud)

不是回应Object of class stdClass could not be converted to string.请帮助,我有一个截止日期(1小时),我不能让这个工作.

php error-handling post json object

2
推荐指数
1
解决办法
1万
查看次数

Mysql order by:跳过零到列表末尾

$query = "SELECT products.*, login1.* 
          FROM products LEFT JOIN login1
               ON products.id_user = login1.id_user
          WHERE products.product LIKE '".$search_keyword."'
          ORDER BY products.product, products.rate "
Run Code Online (Sandbox Code Playgroud)

使用此查询时,首先列出费率为 0 的产品,但我希望最后显示该产品,订单中没有其他更改。我怎样才能做到这一点。

php mysql sql-order-by zero

2
推荐指数
1
解决办法
1740
查看次数