保持可爱mmm个人页面-阿里云开发者社区

个人头像照片 保持可爱mmm TA的个人档案

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
  • 高分内容
  • 最新动态
  • 文章
  • 问答
  • 提交了问题 2020-05-06

    #支付宝 ACQ.TRADE_NOT_EXIST(交易不存在)

  • 提交了问题 2020-05-05

    #支付宝 验签出错,请确认charset参数放在了URL查询字符串中且各参数值使用char,怎么办?

  • 提交了问题 2020-05-05

    #支付宝 isv.invalid-alipay-root-cert-sn(无效支付宝根证书,怎么办?

  • 提交了问题 2020-03-29

    云数据库 HBase的请求结构有哪些?

  • 提交了问题 2020-03-29

    云数据库MongoDB版是否支持免密访问

正在加载, 请稍后...
滑动查看更多

2020年05月

  • 05.18 13:54:16
    回答了问题 2020-05-18 13:54:16

    MySQL递归??mysql

    可以,但是您需要更改数据库结构;进行更改后,您可以在一个查询中检索任意深度的树。查询稍微复杂一些,但是仍然非常简单。来源:stack overflow

    踩0 评论0
  • 05.18 13:53:10
    回答了问题 2020-05-18 13:53:10

    如何在MySQL查询中编写IF ELSE语句?mysql

    这段代码像筛子一样漏水。 您正在调用mysql_query一个mysql_real_escape_string()看不见的功能。 您正在其他功能中使用PDO。 这是一团糟,没有道理。如果您知道如何使用PDO,请使用它。 这样您就安全了。

    如果要使用mysql_query,则必须使用mysql_real_escape_string()。来源:stack overflow

    踩0 评论0
  • 05.18 13:51:18
    回答了问题 2020-05-18 13:51:18

    在MySQL 4.0中同时具有Created和Last Updated timestam?mysql

    尝试还原到旧版本的连接器。适用于我的是6.3.4。另外,请确保在服务器上使用与开发工作站上完全相同的版本。来源:stack overflow

    踩0 评论0
  • 05.18 13:49:55
    回答了问题 2020-05-18 13:49:55

    查找表中的列数?mysql

    一种方法是将您的表2转换为长格式,其中一列用于GeneGroupName成员基因,一列用于成员基因,然后使用match。

    (table1 <- data.frame(GeneName=sample(LETTERS[1:12]), col2=runif(12)))

    GeneName col2

    1 F 0.6116285

    2 L 0.5752088

    3 J 0.7499011

    4 D 0.9405068

    5 A 0.9360968

    6 K 0.6549850

    7 I 0.7070163

    8 E 0.3521952

    9 C 0.4234293

    10 G 0.7750203

    11 B 0.1418680

    12 H 0.6632382

    (table2 <- data.frame(GeneGroupName=1:4, g1=LETTERS[1:4], g2=LETTERS[5:8], g3=LETTERS[9:12]))

    GeneGroupName g1 g2 g3

    1 1 A E I

    2 2 B F J

    3 3 C G K

    4 4 D H L

    (table2.long <- reshape(table2, direction='long', varying=list(-1), timevar='gene'))

    GeneGroupName gene g1 id

    1.1 1 1 A 1

    2.1 2 1 B 2

    3.1 3 1 C 3

    4.1 4 1 D 4

    1.2 1 2 E 1

    2.2 2 2 F 2

    3.2 3 2 G 3

    4.2 4 2 H 4

    1.3 1 3 I 1

    2.3 2 3 J 2

    3.3 3 3 K 3

    4.3 4 3 L 4

    table1$grp <- table2.long$GeneGroupName[match(table1$GeneName, table2.long$g1)]

    table1

    GeneName col2 GeneGroupName

    1 F 0.6116285 2

    2 L 0.5752088 4

    3 J 0.7499011 2

    4 D 0.9405068 4

    5 A 0.9360968 1

    6 K 0.6549850 3

    7 I 0.7070163 1

    8 E 0.3521952 1

    9 C 0.4234293 3

    10 G 0.7750203 3

    11 B 0.1418680 2

    12 H 0.6632382 4来源:stack overflow

    踩0 评论0
  • 05.18 13:47:11
    回答了问题 2020-05-18 13:47:11

    如何在Windows上访问Xampp的命令行?mysql

    显然,您在操作系统级别而不是在应用程序级别设置了克朗。尽管,就像在Unix / Linux上一样,您也可以使用Task Schedular在Windows平台上设置CRON ( All Programs->Accessories->System Tools -> Task Schedular )。我认为您应该为VPN或专用服务器设置权杖,因为它需要私下访问系统资源。

    除此之外,Crontab command(unix / linux)的语法如下:

    1 2 3 4 5 /root/backup.sh 1: Minute (0-59) 2: Hours (0-23) 3: Day (0-31) 4: Month (0-12 [12 == December]) 5: Day of the week(0-7 [7 or 0 == sunday]) /path/to/command - Script or command name to schedule来源:stack overflow

    踩0 评论0
  • 05.18 13:45:27
    回答了问题 2020-05-18 13:45:27

    Ruby on Rails 3无法通过OSX上的套接字'/tmp/mysql.sock'?mysql

    该where子句永远不会返回nil,它返回一个ActiveRecord :: Relation对象,该对象可以为空!

    尝试以下方法:

    def create if @trained = Certificate.where(user_id: params[:certificate][:user_id]).first @trained.update_attributes(attend: "No") else @trained = Certificate.new(params[:certificate]) if @trained.save @trained.update_attributes(attend: "Yes") end end

    redirect_to grandstreamers_resellers_path end 但我会将代码重构为如下形式:

    def create @trained = Certificate.where(user_id: params[:certificate][:user_id]).first @trained ||= Certificate.new(params[:certificate]) if @trained.persisted? # tests if the records is persisted in the DB (has an ID) @trained.attend = "No" else @trained.attend = "Yes" end

    @trained.save redirect_to grandstreamers_resellers_path end 非常简短的版本:

    def create @trained = Certificate.where(user_id: params[:certificate][:user_id]).first || Certificate.new(params[:certificate]) @trained.attend = @trained.persisted? ? "No" : "Yes" @trained.save

    redirect_to grandstreamers_resellers_path end 为了记录(@NitinJ,请看一下),您可以在if条件中分配变量:

    if first_user = User.first

    if User.first does not returns nil, executes the first block with local variable first_user available

    first_user.id else # User.first returned nil end来源:stack overflow

    踩0 评论0
  • 05.18 13:44:02
    回答了问题 2020-05-18 13:44:02

    MySQL在日期中添加天数?mysql

    假设您的字段是一种date类型(或相似类型):

    SELECT DATE_ADD(your_field_name, INTERVAL 2 DAY) FROM table_name; 使用您提供的示例,它看起来可能像这样:

    UPDATE classes SET date = DATE_ADD(date , INTERVAL 2 DAY) WHERE id = 161; 这种方法也适用datetime。来源:stack overflow

    踩0 评论0
  • 05.18 13:42:49
    回答了问题 2020-05-18 13:42:49

    MySQL查询,MAX()+ GROUP BY?mysql

    (在PostgreSQL 9中测试过)

    标识摆脱和时间戳。

    select rid, max(timestamp) as ts from test group by rid;

    1 2011-04-14 18:46:00 2 2011-04-14 14:59:00 加入吧。

    select test.pid, test.cost, test.timestamp, test.rid from test inner join (select rid, max(timestamp) as ts from test group by rid) maxt on (test.rid = maxt.rid and test.timestamp = maxt.ts)来源:stack overflow

    踩0 评论0
  • 05.18 13:42:12
    回答了问题 2020-05-18 13:42:12

    错误代码:1406。列的数据太长-MySQL?mysql

    问题出在函数名称上。函数名称应具有字段名称。就像你的例子一样

    $attribute_name = "image_wheel"; 所以函数名称应该是

    public function setImage_wheelAttribute($value) 这样可以解决问题来源:stack overflow

    踩0 评论0
  • 05.18 13:40:16
    回答了问题 2020-05-18 13:40:16

    Python导入MySQLdb错误-Mac 10.6?mysql

    检查您的apache错误日志中是否有错误。另外,尝试使用_www并手动执行脚本。来源:stack overflow

    踩0 评论0
  • 05.18 10:13:09
    回答了问题 2020-05-18 10:13:09

    MySQL触发器将字段更新为id的值?mysql

    "我不知道任何方法可以在一个语句中执行此操作,即使使用触发器也是如此。

    @Lucky建议的触发器解决方案在MySQL中如下所示:

    CREATE TRIGGER MyTrigger BEFORE INSERT ON MyTable FOR EACH ROW BEGIN SET NEW.group_id = COALESCE(NEW.group_id, NEW.id); END 但是,有一个问题。在此BEFORE INSERT阶段,id尚未生成自动生成的值。因此,如果group_id为null,则默认NEW.id为始终为0。

    但是,如果您在此AFTER INSERT阶段将触发器更改为触发,那么您就可以访问的生成值NEW.id,则无法修改列值。

    MySQL不支持DEFAULT列的表达式,因此您也不能在表定义中声明此行为。*更新:MySQL 8.0.13支持,DEFAULT ( )但表达式仍然不能依赖于自动增量值(已记录)。

    唯一的解决方案是执行INSERT,然后立即执行UPDATE来更改group_id未设置的。

    INSERT INTO MyTable (group_id, value) VALUES (NULL, 'a'); UPDATE MyTable SET group_id = COALESCE(group_id, id) WHERE id = LAST_INSERT_ID();" 来源:stack overflow

    踩0 评论0
  • 05.18 10:12:38
    回答了问题 2020-05-18 10:12:38

    MySQL Workbench:如何使连接保持活动状态?mysql

    "转到“编辑”->“首选项”->“ SQL编辑器”,然后将此参数设置为更高的值:DBMS连接读取超时(以秒为单位)。例如:86400。

    关闭并重新打开MySQL Workbench。杀死先前可能正在运行的查询,然后再次运行该查询。" 来源:stack overflow

    踩0 评论0
  • 05.18 10:11:11
    回答了问题 2020-05-18 10:11:11

    MySQL select语句是CASE还是IF ELSEIF?不确定如何获得结果?mysql

    "试试这个查询-

    SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM products t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238" 来源:stack overflow

    踩0 评论0
  • 05.18 10:10:14
    回答了问题 2020-05-18 10:10:14

    MySQL PHP不兼容?mysql

    "您正在使用的MySQL帐户可能具有旧的16个字符长的密码(哈希)。 您可以使用MySQL客户端(例如HeidiSQL,MySQL控制台客户端或任何其他客户端)和有权访问的帐户进行测试mysql。user表。如果密码字段包含16个字符,则它是一个旧密码,并且mysqlnd无法使用它来连接到MySQL服务器。 您可以使用以下方式为该用户设置新密码

    SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword') 参见dev_mysql_set_password

    编辑: 您还应该检查服务器是否默认设置为使用/创建旧密码。

    edit2: 请运行查询

    SELECT Length(Password), Substring(Password, 1, 1) FROM mysql.user WHERE user='username' 在5.0.22服务器上(“失败”的服务器)。替换username为您在mysql_connect()中使用的帐户。 那会返回什么?" 来源:stack overflow

    踩0 评论0
  • 05.18 10:09:49
    回答了问题 2020-05-18 10:09:49

    最佳实践多语言网站?mysql

    "主题前提 多语言站点包含三个不同方面:

    界面翻译 内容 网址路由 尽管它们都以不同的方式互连,但是从CMS的角度来看,它们是使用不同的UI元素进行管理的,并且存储方式也不同。您似乎对自己的实现和对前两个的理解充满信心。问题是关于后一个方面的问题:“ URL转换?我们应该这样做吗?应该以什么方式进行?”

    URL可以由什么组成? 一个非常重要的事情是,不要对IDN感兴趣。取而代之的是支持音译(也:转录和罗马化)。乍一看,IDN似乎是国际URL的可行选择,但实际上,它不能按广告宣传工作,原因有两个:

    某些浏览器会将非ASCII字符(例如'ч'或)'ž'转换为'%D1%87'和'%C5%BE' 如果用户具有自定义主题,则主题的字体很可能没有这些字母的符号 实际上,几年前,我在一个基于Yii的项目(可怕的框架,恕我直言)中尝试了IDN方法。在抓取该解决方案之前,我遇到了上述两个问题。另外,我怀疑这可能是攻击媒介。

    可用选项...如我所见。 基本上,您有两个选择,可以抽象为:

    http://site.tld/[:query]:[:query]决定语言和内容选择的地方

    http://site.tld/[:language]/[:query]:[:language]URL的一部分定义语言的选择,[:query]仅用于标识内容

    查询是Α和Ω.. 假设您选择http://site.tld/[:query]。

    在这种情况下,您有一种主要的语言来源:[:query]段的内容;以及另外两个来源:

    $_COOKIE['lang']该特定浏览器的价值 HTTP Accept-Language (1),(2)标头中的语言列表 首先,您需要将查询与定义的路由模式之一进行匹配(如果您选择的是Laravel,请在此处阅读)。成功匹配模式后,您需要查找语言。

    您将必须遍历模式的所有部分。找到所有这些片段的潜在翻译,并确定使用哪种语言。当(不是“如果”)发生冲突时,将使用两个其他来源(cookie和标头)来解决路由冲突。

    例如:http://site.tld/blog/novinka。

    那是音译""блог, новинка"",在英语中大约是""blog"", ""latest""。

    您已经注意到,俄语中的“блог”将译为“博客”。这意味着对于您的第一部分[:query](在最佳情况下),最终会['en', 'ru']列出可能的语言。然后您进入下一个片段-“ novinka”。可能的列表中可能只有一种语言:['ru']。

    当列表中有一项时,您已经成功找到该语言。

    但是,如果最终得到2种(例如:俄语和乌克兰语)或更多种可能性..或0种可能性(视情况而定)。您将必须使用Cookie和/或标题才能找到正确的选项。

    如果其他所有方法均失败,则选择站点的默认语言。

    语言作为参数 替代方法是使用URL,可以将其定义为http://site.tld/[:language]/[:query]。在这种情况下,翻译查询时,您无需猜测语言,因为此时您已经知道要使用哪种语言。

    还有另一种语言来源:cookie值。但是,这里没有必要弄乱Accept-Language标头,因为在“冷启动”的情况下(当用户第一次使用自定义查询打开网站时),您不会处理未知数量的可能的语言。

    相反,您有3个简单的优先选项:

    如果[:language]设置了细分,请使用它 如果$_COOKIE['lang']设置,使用它 使用默认语言 使用该语言时,您只需尝试翻译查询,如果翻译失败,请对该特定段使用“默认值”(基于路由结果)。

    这不是第三种选择吗? 是的,从技术上讲,您可以将两种方法结合使用,但这会使过程复杂化,并且只适合那些想要手动更改URL http://site.tld/en/news到http://site.tld/de/news并希望新闻页面更改为德语的人员。

    但是即使是这种情况,也可以使用cookie值(其中包含有关先前选择语言的信息)缓解,以减少魔术和希望。

    使用哪种方法? 您可能已经猜到了,我建议您将其http://site.tld/[:language]/[:query]作为更明智的选择。

    同样在真实的单词情况下,URL中将包含第三大部分:“标题”。如在线商店中的产品名称或新闻站点中的文章标题。

    例: http://site.tld/en/news/article/121415/EU-as-global-reserve-currency

    在这种情况下'/news/article/121415'将是查询,而'EU-as-global-reserve-currency'标题是。纯粹用于SEO。

    可以在Laravel中完成吗? Kinda,但默认情况下不是。

    我不太熟悉它,但是据我所知,Laravel使用简单的基于模式的路由机制。要实现多语言URL,您可能必须扩展核心类,因为多语言路由需要访问不同形式的存储(数据库,缓存和/或配置文件)。

    已路由。现在怎么办? 结果,您最终将获得两条有价值的信息:当前语言和查询的翻译段。然后,这些值可用于调度将产生结果的类。

    基本上,以下网址:(http://site.tld/ru/blog/novinka或不含的版本'/ru')变成了类似

    $parameters = [ 'language' => 'ru', 'classname' => 'blog', 'method' => 'latest', ]; 您仅用于调度的对象:

    $instance = new {$parameter['classname']}; $instance->{'get'.$parameters['method']}( $parameters ); ..或它的某些变体,具体取决于特定的实现。"来源:stack overflow

    踩0 评论0
  • 05.17 22:39:18
    回答了问题 2020-05-17 22:39:18

    JDBC MySQL UTF-8字符串编写问题?mysql

    确保正确定义了MySQL配置编码。使用以下命令检查设置和修改的正确性:

    show variables like 'character%'; 和 show variables like 'collation%';

    将这些行添加到my.cnf或my.ini中:

    对于MySQL 5.1.nn和更高版本5.5.29,您只需要这两行:

    [mysqld] character-set-server = utf8 character-set-filesystem = utf8 对于MySQL 5.0.nn和更早版本,请使用以下设置:

    [client] default-character-set=utf8

    [mysql] default-character-set=utf8

    [mysqld] default-character-set=utf8 character-set-server=utf8 使用MySQL-Workbench进行设置可能更方便。5+版本非常好。

    在此处输入图片说明

    在您的Java程序中按以下方式连接:

    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myDatabase?useUnicode=tr来源:stack overflow

    踩0 评论0
  • 05.17 22:39:16
    回答了问题 2020-05-17 22:39:16

    在django ORM中查询时,如何将char转换为整数??mysql

    无需使用的更新替代方法extra是强制转换功能(Django 1.10中的新增功能):

    from django.db.models import FloatField from django.db.models.functions import Cast Value.objects.create(integer=4) value = Value.objects.annotate(as_float=Cast('integer', FloatField())).get()> print(value.as_float) 4.0 从https://docs.djangoproject.com/en/1.10/ref/models/database-functions/#cast来源:stack overflow

    踩0 评论0
  • 05.17 22:39:14
    回答了问题 2020-05-17 22:39:14

    PHP警告:mysqli_connect():(HY000 / 2002):连接被拒绝?mysql

    万一其他人遇到此问题,则MAMP上mysql的默认端口是8889,但php希望用于mysql的端口是3306。因此,您需要打开MAMP,转到首选项,并将MAMP的mysql端口更改为3306,然后重新启动mysql服务器。现在,使用host = localhost,user = root,pass = root可以成功连接。来源:stack overflow

    踩0 评论0
  • 05.17 22:38:21
    回答了问题 2020-05-17 22:38:21

    使用PDO准备好的语句插入多行?mysql

    首先要说的是,由于只有一个查询,您可以插入多行 INSERT

    INSERT INTO Table (col1, col2, col3) VALUES ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi') -- and so on... 知道了这一点之后,便可以使用PDO获得良好的解决方案(例如)。 你要记住,你想有一个完整prepare和execute过程(在安全期限,你必须单独通过每个参数)。

    假设您要插入的行结构如下:

    $rows = array( array('abc', 'def', 'ghi'), // row 1 to insert array('abc', 'def', 'ghi'), // row 2 to insert array('abc', 'def', 'ghi') // row 3 to insert // and so on ... ); 您的目标是将此结果作为准备好的查询:

    INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?) 及其相应的执行:

    PDOStatement::execute(array('abc', 'def', 'ghi', 'abc', 'def', 'ghi', 'abc', 'def', 'ghi'));

    好吧,您现在只需要这样做:

    $rows = array( array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi') );

    $row_length = count($rows[0]); $nb_rows = count($rows); $length = $nb_rows * $row_length;

    /* Fill in chunks with '?' and separate them by group of $row_length */ $args = implode(',', array_map( function($el) { return '('.implode(',', $el).')'; }, array_chunk(array_fill(0, $length, '?'), $row_length) ));

    $params = array(); foreach($rows as $row) { foreach($row as $value) { $params[] = $value; } }

    $query = "INSERT INTO Table (col1, col2, col3) VALUES ".$args; $stmt = DB::getInstance()->prepare($query); $stmt->execute($params); 而且...就是这样!

    这样,每个参数都将被单独处理,这就是您想要的(安全性,安全性,安全性!)及其所有内容,并且只需一个INSERT查询就可以动态方式进行处理

    如果要插入的行太多(请参阅此),则应execute一个接一个

    $rows = array( array('abc', 'def', 'ghi'), // row 1 to insert array('abc', 'def', 'ghi'), // row 2 to insert array('abc', 'def', 'ghi') // row 3 to insert // and so on ... );

    $args = array_fill(0, count($rows[0]), '?');

    $query = "INSERT INTO Table (col1, col2, col3) VALUES (".implode(',', $args).")"; $stmt = $pdo->prepare($query);

    foreach ($rows as $row) { $stmt->execute($row); }来源:stack overflow

    踩0 评论0
  • 05.17 22:38:18
    回答了问题 2020-05-17 22:38:18

    从MYSQL更新到MYSQLI ?mysql

    您可以从此处下载转换器工具:

    https://github.com/philip/MySQLConverterTool

    它生成的代码非常繁琐,主要是因为它使用$GLOBAL变量来实现默认数据库链接参数的方式。(这也使得在有人使用通过转换器的代码时易于识别。)

    这里还有一个MySQL Shim库:

    https://github.com/dshafik/php7-mysql-shim来源:stack overflow

    踩0 评论0
正在加载, 请稍后...
滑动查看更多
  • 发表了文章 2020-02-20

    Kubernetes必备知识: 主流网络方案

  • 发表了文章 2020-02-20

    云原生必备知识: 云原生

  • 发表了文章 2020-02-20

    云原生必备知识: 应用储存

  • 发表了文章 2020-02-20

    云原生必备知识:调度算法(Scheduler)

  • 发表了文章 2020-02-20

    Kubernetes必备知识: 调度流程

  • 发表了文章 2020-02-20

    云原生必备知识: 容器数据卷

  • 发表了文章 2020-02-20

    云原生必备知识: 容器设计模式

  • 发表了文章 2020-02-20

    云原生必备知识: 容器镜像

  • 发表了文章 2020-02-20

    Kubernetes必备知识: 容器接口CRI

  • 发表了文章 2020-02-20

    云原生必备知识:容器

  • 发表了文章 2020-02-20

    Kubernetes必备知识: 配置调度器

  • 发表了文章 2020-02-20

    Kubernetes必备知识: 扩展调度器

  • 发表了文章 2020-02-20

    云原生必备知识: 负载均衡

  • 发表了文章 2020-02-20

    云原生必备知识: 持久化数据卷

  • 发表了文章 2020-02-20

    Kubernetes必备知识: StorageClass

  • 发表了文章 2020-02-20

    Kubernetes必备知识: StatefulSet

  • 发表了文章 2020-02-20

    云原生必备知识: Sidecar

  • 发表了文章 2020-02-20

    Pod必备知识: ServiceAccounts

  • 发表了文章 2020-02-20

    Kubernetes必备知识: Selectors

  • 发表了文章 2020-02-20

    Pod必备知识: SecurityContexts

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2020-05-18

    MySQL递归??mysql

    可以,但是您需要更改数据库结构;进行更改后,您可以在一个查询中检索任意深度的树。查询稍微复杂一些,但是仍然非常简单。来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    如何在MySQL查询中编写IF ELSE语句?mysql

    这段代码像筛子一样漏水。 您正在调用mysql_query一个mysql_real_escape_string()看不见的功能。 您正在其他功能中使用PDO。 这是一团糟,没有道理。如果您知道如何使用PDO,请使用它。 这样您就安全了。

    如果要使用mysql_query,则必须使用mysql_real_escape_string()。来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    在MySQL 4.0中同时具有Created和Last Updated timestam?mysql

    尝试还原到旧版本的连接器。适用于我的是6.3.4。另外,请确保在服务器上使用与开发工作站上完全相同的版本。来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    查找表中的列数?mysql

    一种方法是将您的表2转换为长格式,其中一列用于GeneGroupName成员基因,一列用于成员基因,然后使用match。

    (table1 <- data.frame(GeneName=sample(LETTERS[1:12]), col2=runif(12)))

    GeneName col2

    1 F 0.6116285

    2 L 0.5752088

    3 J 0.7499011

    4 D 0.9405068

    5 A 0.9360968

    6 K 0.6549850

    7 I 0.7070163

    8 E 0.3521952

    9 C 0.4234293

    10 G 0.7750203

    11 B 0.1418680

    12 H 0.6632382

    (table2 <- data.frame(GeneGroupName=1:4, g1=LETTERS[1:4], g2=LETTERS[5:8], g3=LETTERS[9:12]))

    GeneGroupName g1 g2 g3

    1 1 A E I

    2 2 B F J

    3 3 C G K

    4 4 D H L

    (table2.long <- reshape(table2, direction='long', varying=list(-1), timevar='gene'))

    GeneGroupName gene g1 id

    1.1 1 1 A 1

    2.1 2 1 B 2

    3.1 3 1 C 3

    4.1 4 1 D 4

    1.2 1 2 E 1

    2.2 2 2 F 2

    3.2 3 2 G 3

    4.2 4 2 H 4

    1.3 1 3 I 1

    2.3 2 3 J 2

    3.3 3 3 K 3

    4.3 4 3 L 4

    table1$grp <- table2.long$GeneGroupName[match(table1$GeneName, table2.long$g1)]

    table1

    GeneName col2 GeneGroupName

    1 F 0.6116285 2

    2 L 0.5752088 4

    3 J 0.7499011 2

    4 D 0.9405068 4

    5 A 0.9360968 1

    6 K 0.6549850 3

    7 I 0.7070163 1

    8 E 0.3521952 1

    9 C 0.4234293 3

    10 G 0.7750203 3

    11 B 0.1418680 2

    12 H 0.6632382 4来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    如何在Windows上访问Xampp的命令行?mysql

    显然,您在操作系统级别而不是在应用程序级别设置了克朗。尽管,就像在Unix / Linux上一样,您也可以使用Task Schedular在Windows平台上设置CRON ( All Programs->Accessories->System Tools -> Task Schedular )。我认为您应该为VPN或专用服务器设置权杖,因为它需要私下访问系统资源。

    除此之外,Crontab command(unix / linux)的语法如下:

    1 2 3 4 5 /root/backup.sh 1: Minute (0-59) 2: Hours (0-23) 3: Day (0-31) 4: Month (0-12 [12 == December]) 5: Day of the week(0-7 [7 or 0 == sunday]) /path/to/command - Script or command name to schedule来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    Ruby on Rails 3无法通过OSX上的套接字'/tmp/mysql.sock'?mysql

    该where子句永远不会返回nil,它返回一个ActiveRecord :: Relation对象,该对象可以为空!

    尝试以下方法:

    def create if @trained = Certificate.where(user_id: params[:certificate][:user_id]).first @trained.update_attributes(attend: "No") else @trained = Certificate.new(params[:certificate]) if @trained.save @trained.update_attributes(attend: "Yes") end end

    redirect_to grandstreamers_resellers_path end 但我会将代码重构为如下形式:

    def create @trained = Certificate.where(user_id: params[:certificate][:user_id]).first @trained ||= Certificate.new(params[:certificate]) if @trained.persisted? # tests if the records is persisted in the DB (has an ID) @trained.attend = "No" else @trained.attend = "Yes" end

    @trained.save redirect_to grandstreamers_resellers_path end 非常简短的版本:

    def create @trained = Certificate.where(user_id: params[:certificate][:user_id]).first || Certificate.new(params[:certificate]) @trained.attend = @trained.persisted? ? "No" : "Yes" @trained.save

    redirect_to grandstreamers_resellers_path end 为了记录(@NitinJ,请看一下),您可以在if条件中分配变量:

    if first_user = User.first

    if User.first does not returns nil, executes the first block with local variable first_user available

    first_user.id else # User.first returned nil end来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    MySQL在日期中添加天数?mysql

    假设您的字段是一种date类型(或相似类型):

    SELECT DATE_ADD(your_field_name, INTERVAL 2 DAY) FROM table_name; 使用您提供的示例,它看起来可能像这样:

    UPDATE classes SET date = DATE_ADD(date , INTERVAL 2 DAY) WHERE id = 161; 这种方法也适用datetime。来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    MySQL查询,MAX()+ GROUP BY?mysql

    (在PostgreSQL 9中测试过)

    标识摆脱和时间戳。

    select rid, max(timestamp) as ts from test group by rid;

    1 2011-04-14 18:46:00 2 2011-04-14 14:59:00 加入吧。

    select test.pid, test.cost, test.timestamp, test.rid from test inner join (select rid, max(timestamp) as ts from test group by rid) maxt on (test.rid = maxt.rid and test.timestamp = maxt.ts)来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    错误代码:1406。列的数据太长-MySQL?mysql

    问题出在函数名称上。函数名称应具有字段名称。就像你的例子一样

    $attribute_name = "image_wheel"; 所以函数名称应该是

    public function setImage_wheelAttribute($value) 这样可以解决问题来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    Python导入MySQLdb错误-Mac 10.6?mysql

    检查您的apache错误日志中是否有错误。另外,尝试使用_www并手动执行脚本。来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    MySQL触发器将字段更新为id的值?mysql

    "我不知道任何方法可以在一个语句中执行此操作,即使使用触发器也是如此。

    @Lucky建议的触发器解决方案在MySQL中如下所示:

    CREATE TRIGGER MyTrigger BEFORE INSERT ON MyTable FOR EACH ROW BEGIN SET NEW.group_id = COALESCE(NEW.group_id, NEW.id); END 但是,有一个问题。在此BEFORE INSERT阶段,id尚未生成自动生成的值。因此,如果group_id为null,则默认NEW.id为始终为0。

    但是,如果您在此AFTER INSERT阶段将触发器更改为触发,那么您就可以访问的生成值NEW.id,则无法修改列值。

    MySQL不支持DEFAULT列的表达式,因此您也不能在表定义中声明此行为。*更新:MySQL 8.0.13支持,DEFAULT ( )但表达式仍然不能依赖于自动增量值(已记录)。

    唯一的解决方案是执行INSERT,然后立即执行UPDATE来更改group_id未设置的。

    INSERT INTO MyTable (group_id, value) VALUES (NULL, 'a'); UPDATE MyTable SET group_id = COALESCE(group_id, id) WHERE id = LAST_INSERT_ID();" 来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    MySQL Workbench:如何使连接保持活动状态?mysql

    "转到“编辑”->“首选项”->“ SQL编辑器”,然后将此参数设置为更高的值:DBMS连接读取超时(以秒为单位)。例如:86400。

    关闭并重新打开MySQL Workbench。杀死先前可能正在运行的查询,然后再次运行该查询。" 来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    MySQL select语句是CASE还是IF ELSEIF?不确定如何获得结果?mysql

    "试试这个查询-

    SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM products t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238" 来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    MySQL PHP不兼容?mysql

    "您正在使用的MySQL帐户可能具有旧的16个字符长的密码(哈希)。 您可以使用MySQL客户端(例如HeidiSQL,MySQL控制台客户端或任何其他客户端)和有权访问的帐户进行测试mysql。user表。如果密码字段包含16个字符,则它是一个旧密码,并且mysqlnd无法使用它来连接到MySQL服务器。 您可以使用以下方式为该用户设置新密码

    SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword') 参见dev_mysql_set_password

    编辑: 您还应该检查服务器是否默认设置为使用/创建旧密码。

    edit2: 请运行查询

    SELECT Length(Password), Substring(Password, 1, 1) FROM mysql.user WHERE user='username' 在5.0.22服务器上(“失败”的服务器)。替换username为您在mysql_connect()中使用的帐户。 那会返回什么?" 来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-18

    最佳实践多语言网站?mysql

    "主题前提 多语言站点包含三个不同方面:

    界面翻译 内容 网址路由 尽管它们都以不同的方式互连,但是从CMS的角度来看,它们是使用不同的UI元素进行管理的,并且存储方式也不同。您似乎对自己的实现和对前两个的理解充满信心。问题是关于后一个方面的问题:“ URL转换?我们应该这样做吗?应该以什么方式进行?”

    URL可以由什么组成? 一个非常重要的事情是,不要对IDN感兴趣。取而代之的是支持音译(也:转录和罗马化)。乍一看,IDN似乎是国际URL的可行选择,但实际上,它不能按广告宣传工作,原因有两个:

    某些浏览器会将非ASCII字符(例如'ч'或)'ž'转换为'%D1%87'和'%C5%BE' 如果用户具有自定义主题,则主题的字体很可能没有这些字母的符号 实际上,几年前,我在一个基于Yii的项目(可怕的框架,恕我直言)中尝试了IDN方法。在抓取该解决方案之前,我遇到了上述两个问题。另外,我怀疑这可能是攻击媒介。

    可用选项...如我所见。 基本上,您有两个选择,可以抽象为:

    http://site.tld/[:query]:[:query]决定语言和内容选择的地方

    http://site.tld/[:language]/[:query]:[:language]URL的一部分定义语言的选择,[:query]仅用于标识内容

    查询是Α和Ω.. 假设您选择http://site.tld/[:query]。

    在这种情况下,您有一种主要的语言来源:[:query]段的内容;以及另外两个来源:

    $_COOKIE['lang']该特定浏览器的价值 HTTP Accept-Language (1),(2)标头中的语言列表 首先,您需要将查询与定义的路由模式之一进行匹配(如果您选择的是Laravel,请在此处阅读)。成功匹配模式后,您需要查找语言。

    您将必须遍历模式的所有部分。找到所有这些片段的潜在翻译,并确定使用哪种语言。当(不是“如果”)发生冲突时,将使用两个其他来源(cookie和标头)来解决路由冲突。

    例如:http://site.tld/blog/novinka。

    那是音译""блог, новинка"",在英语中大约是""blog"", ""latest""。

    您已经注意到,俄语中的“блог”将译为“博客”。这意味着对于您的第一部分[:query](在最佳情况下),最终会['en', 'ru']列出可能的语言。然后您进入下一个片段-“ novinka”。可能的列表中可能只有一种语言:['ru']。

    当列表中有一项时,您已经成功找到该语言。

    但是,如果最终得到2种(例如:俄语和乌克兰语)或更多种可能性..或0种可能性(视情况而定)。您将必须使用Cookie和/或标题才能找到正确的选项。

    如果其他所有方法均失败,则选择站点的默认语言。

    语言作为参数 替代方法是使用URL,可以将其定义为http://site.tld/[:language]/[:query]。在这种情况下,翻译查询时,您无需猜测语言,因为此时您已经知道要使用哪种语言。

    还有另一种语言来源:cookie值。但是,这里没有必要弄乱Accept-Language标头,因为在“冷启动”的情况下(当用户第一次使用自定义查询打开网站时),您不会处理未知数量的可能的语言。

    相反,您有3个简单的优先选项:

    如果[:language]设置了细分,请使用它 如果$_COOKIE['lang']设置,使用它 使用默认语言 使用该语言时,您只需尝试翻译查询,如果翻译失败,请对该特定段使用“默认值”(基于路由结果)。

    这不是第三种选择吗? 是的,从技术上讲,您可以将两种方法结合使用,但这会使过程复杂化,并且只适合那些想要手动更改URL http://site.tld/en/news到http://site.tld/de/news并希望新闻页面更改为德语的人员。

    但是即使是这种情况,也可以使用cookie值(其中包含有关先前选择语言的信息)缓解,以减少魔术和希望。

    使用哪种方法? 您可能已经猜到了,我建议您将其http://site.tld/[:language]/[:query]作为更明智的选择。

    同样在真实的单词情况下,URL中将包含第三大部分:“标题”。如在线商店中的产品名称或新闻站点中的文章标题。

    例: http://site.tld/en/news/article/121415/EU-as-global-reserve-currency

    在这种情况下'/news/article/121415'将是查询,而'EU-as-global-reserve-currency'标题是。纯粹用于SEO。

    可以在Laravel中完成吗? Kinda,但默认情况下不是。

    我不太熟悉它,但是据我所知,Laravel使用简单的基于模式的路由机制。要实现多语言URL,您可能必须扩展核心类,因为多语言路由需要访问不同形式的存储(数据库,缓存和/或配置文件)。

    已路由。现在怎么办? 结果,您最终将获得两条有价值的信息:当前语言和查询的翻译段。然后,这些值可用于调度将产生结果的类。

    基本上,以下网址:(http://site.tld/ru/blog/novinka或不含的版本'/ru')变成了类似

    $parameters = [ 'language' => 'ru', 'classname' => 'blog', 'method' => 'latest', ]; 您仅用于调度的对象:

    $instance = new {$parameter['classname']}; $instance->{'get'.$parameters['method']}( $parameters ); ..或它的某些变体,具体取决于特定的实现。"来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-17

    JDBC MySQL UTF-8字符串编写问题?mysql

    确保正确定义了MySQL配置编码。使用以下命令检查设置和修改的正确性:

    show variables like 'character%'; 和 show variables like 'collation%';

    将这些行添加到my.cnf或my.ini中:

    对于MySQL 5.1.nn和更高版本5.5.29,您只需要这两行:

    [mysqld] character-set-server = utf8 character-set-filesystem = utf8 对于MySQL 5.0.nn和更早版本,请使用以下设置:

    [client] default-character-set=utf8

    [mysql] default-character-set=utf8

    [mysqld] default-character-set=utf8 character-set-server=utf8 使用MySQL-Workbench进行设置可能更方便。5+版本非常好。

    在此处输入图片说明

    在您的Java程序中按以下方式连接:

    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myDatabase?useUnicode=tr来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-17

    在django ORM中查询时,如何将char转换为整数??mysql

    无需使用的更新替代方法extra是强制转换功能(Django 1.10中的新增功能):

    from django.db.models import FloatField from django.db.models.functions import Cast Value.objects.create(integer=4) value = Value.objects.annotate(as_float=Cast('integer', FloatField())).get()> print(value.as_float) 4.0 从https://docs.djangoproject.com/en/1.10/ref/models/database-functions/#cast来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-17

    PHP警告:mysqli_connect():(HY000 / 2002):连接被拒绝?mysql

    万一其他人遇到此问题,则MAMP上mysql的默认端口是8889,但php希望用于mysql的端口是3306。因此,您需要打开MAMP,转到首选项,并将MAMP的mysql端口更改为3306,然后重新启动mysql服务器。现在,使用host = localhost,user = root,pass = root可以成功连接。来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-17

    使用PDO准备好的语句插入多行?mysql

    首先要说的是,由于只有一个查询,您可以插入多行 INSERT

    INSERT INTO Table (col1, col2, col3) VALUES ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi') -- and so on... 知道了这一点之后,便可以使用PDO获得良好的解决方案(例如)。 你要记住,你想有一个完整prepare和execute过程(在安全期限,你必须单独通过每个参数)。

    假设您要插入的行结构如下:

    $rows = array( array('abc', 'def', 'ghi'), // row 1 to insert array('abc', 'def', 'ghi'), // row 2 to insert array('abc', 'def', 'ghi') // row 3 to insert // and so on ... ); 您的目标是将此结果作为准备好的查询:

    INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?) 及其相应的执行:

    PDOStatement::execute(array('abc', 'def', 'ghi', 'abc', 'def', 'ghi', 'abc', 'def', 'ghi'));

    好吧,您现在只需要这样做:

    $rows = array( array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi') );

    $row_length = count($rows[0]); $nb_rows = count($rows); $length = $nb_rows * $row_length;

    /* Fill in chunks with '?' and separate them by group of $row_length */ $args = implode(',', array_map( function($el) { return '('.implode(',', $el).')'; }, array_chunk(array_fill(0, $length, '?'), $row_length) ));

    $params = array(); foreach($rows as $row) { foreach($row as $value) { $params[] = $value; } }

    $query = "INSERT INTO Table (col1, col2, col3) VALUES ".$args; $stmt = DB::getInstance()->prepare($query); $stmt->execute($params); 而且...就是这样!

    这样,每个参数都将被单独处理,这就是您想要的(安全性,安全性,安全性!)及其所有内容,并且只需一个INSERT查询就可以动态方式进行处理

    如果要插入的行太多(请参阅此),则应execute一个接一个

    $rows = array( array('abc', 'def', 'ghi'), // row 1 to insert array('abc', 'def', 'ghi'), // row 2 to insert array('abc', 'def', 'ghi') // row 3 to insert // and so on ... );

    $args = array_fill(0, count($rows[0]), '?');

    $query = "INSERT INTO Table (col1, col2, col3) VALUES (".implode(',', $args).")"; $stmt = $pdo->prepare($query);

    foreach ($rows as $row) { $stmt->execute($row); }来源:stack overflow

    踩0 评论0
  • 回答了问题 2020-05-17

    从MYSQL更新到MYSQLI ?mysql

    您可以从此处下载转换器工具:

    https://github.com/philip/MySQLConverterTool

    它生成的代码非常繁琐,主要是因为它使用$GLOBAL变量来实现默认数据库链接参数的方式。(这也使得在有人使用通过转换器的代码时易于识别。)

    这里还有一个MySQL Shim库:

    https://github.com/dshafik/php7-mysql-shim来源:stack overflow

    踩0 评论0
正在加载, 请稍后...
滑动查看更多