Questions tagged «mysql»

MySQL是使用结构化查询语言(SQL)的免费,开放源代码关系数据库管理系统(RDBMS)。请勿将此标签用于其他数据库,例如SQL Server,SQLite等。那些是不同的数据库,它们都使用自己的SQL方言来管理数据。

5
MySQL my.cnf文件-找到的选项没有前面的组
我正在尝试远程连接到Ubuntu中的数据库,但是在尝试进行mysql -u root -p以下操作时收到错误消息: 在第1行的配置文件/etc/mysql/my.cnf中找到没有前一组的选项 my.cnf看起来像: [mysqld] user = mysql socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp bind-address = 0.0.0.0 key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 myisam-recover = BACKUP query_cache_limit = 1M query_cache_size = 16M log_error …
72 mysql  my.cnf 


15
MySQL'Order By'-正确排序字母数字
我想按以下顺序对以下数据项进行排序(数字1-12): 1个 2 3 4 5 6 7 8 9 10 11 12 但是,我的查询-使用order by xxxxx asc按其他所有字母开头的数字排序: 1个 10 11 12 2 3 4 5 6 7 8 9 有什么技巧可以使其更正确地排序吗? 此外,为了充分公开,这可以是字母和数字的组合(尽管现在不是),例如: A1 534克 G46A 100B 100A 100JE 等等.... 谢谢! 更新:人们要求查询 select * from table order by name asc

14
如何在zend框架中打印确切的sql查询?
我有以下代码是我从模型中获取的, ... $select = $this->_db->select() ->from($this->_name) ->where('shipping=?',$type) ->where('customer_id=?',$userid); echo $select; exit; // which gives exact mysql query. ..... 当我在zend中使用更新查询时, $up_value = array('billing'=> '0'); $this->update($up_value,'customer_id ='.$userid.' and address_id <> '.$data['address_Id']); 在这里我想知道确切的mysql查询。有什么办法可以在zend中打印mysql查询吗?友善的建议

2
计算地理邻近度的公式
我需要在我的应用程序中实现地理邻近搜索,但是对于要使用的正确公式我非常困惑。在Web和StackOverflow中进行一些搜索后,我发现解决方案是: 使用Haversine公式 使用大圆距离公式 在数据库中使用空间搜索引擎 选项#3真的不是我的ATM选项。现在,我有点困惑了,因为我总是说大圆距离公式和Haversine公式是同义词,但显然我错了吗? 上面的屏幕截图来自MySQL出色的Geo(邻近)搜索文件,并使用以下功能: ASIN, SQRT, POWER, SIN, PI, COS 我还看到了同一个公式(余弦的球形定律)的不同形式,例如: (3956 * ACOS(COS(RADIANS(o_lat)) * COS(RADIANS(d_lat)) * COS(RADIANS(d_lon) - RADIANS(o_lon)) + SIN(RADIANS(o_lat)) * SIN(RADIANS(d_lat)))) 它使用以下功能: ACOS, COS, RADIANS, SIN 我不是数学专家,但是这些公式相同吗?我遇到了更多的变化和公式(例如余弦的球形定律和Vincenty的 公式-似乎是最准确的),这让我更加困惑... 我需要选择一个良好的通用公式以在PHP / MySQL中实现。谁能解释我上面提到的公式之间的区别? 哪一个计算最快? 哪一个提供最准确的结果? 就结果的速度/准确性而言,哪一个最好? 感谢您对这些问题的见解。 基于唯一的理论答案,我测试了以下大圆距离公式: 文森特公式 Haversine公式 余弦球定律 该Vincenty公式是死的慢,但是它是相当准确的(下降到0.5mm) 。 该haversine公式是远远比Vincenty公式更快,我能够在大约6秒,这是我的需要非常接受试验1次亿次运算。 该余弦公式的球面法发现是几乎快一倍的haversine公式和精度差是neglectfulness对于大多数使用情况。 以下是一些测试位置: Google总部(37.422045,-122.084347) …
71 php  mysql  math  geospatial  geo 




2
我可以在准备好的语句中参数化表名吗?
我已经多次使用mysqli_stmt_bind_param函数。但是,如果我分开试图防止SQL注入的变量,则会遇到错误。 这是一些代码示例: function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ) { $statement = $mysqli->prepare("INSERT INTO " .$new_table . " VALUES (?,?,?,?,?,?,?);"); mysqli_stmt_bind_param( $statment, 'sssisss', $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ); $statement->execute(); } 是否可以通过某种方式.$new_table.用另一个问号语句替换串联,制作另一个绑定参数语句或添加到现有的语句中以防止SQL注入? 像这样或某种形式: function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, …
71 php  mysql  sql 

5
MySQL中的双vs十进制
好的,所以我知道有很多文章指出我不应该使用DOUBLE在MySQL数据库上存储资金,否则我将遇到棘手的精度错误。关键是我不是在设计新数据库,而是在寻找一种方法来优化现有系统。较新的版本包含783个DOUBLE类型的列,其中大多数用于存储金额或用于计算金额的公式。 因此,我对此主题的第一意见是,我强烈建议在下一个版本中将DOUBLE转换为DECIMAL,因为MySQL文档和所有人都这么说。但是由于以下三个原因,我找不到合适的论据来证明这一建议: 我们不对数据库执行任何计算。所有操作都使用BigDecimal在Java中完成,而MySQL仅用作结果的普通存储。 双精度提供的15位精度足够了,因为我们存储的金额主要是2个小数位,对于公式参数,偶尔会存储8个小数位的数字。 我们已经有6年的生产记录,由于MySQL方面的精度损失,没有已知的bug问题。 即使通过对18毫米行表执行运算(例如SUM和复杂的乘法),我也无法执行缺乏精度的错误。而且我们实际上并没有在生产中做这种事情。我可以通过执行类似的操作来显示丢失的精度 SELECT columnName * 1.000000000000000 FROM tableName; 但是我想不出一种方法来将它转换为错误的小数点后两位数字。我在互联网上发现的大多数实际问题都是2005年和更早的论坛条目,我无法在5.0.51 MySQL服务器上重现它们中的任何一个。 因此,只要我们不执行我们不打算执行的任何SQL算术运算,那么仅在DOUBLE列中存储和取回金额是否会有任何问题吗?
71 mysql  double  decimal 

4
什么是MySQL数据库引擎?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我环顾四周,发现一些MySQL引擎是innodb和MyISAM。也许还有更多。我的问题是这些数据库引擎是什么? 不同的MySQL引擎之间有什么区别?更重要的是,我该如何决定使用哪个?

1
MySQL的默认ON DELETE行为是什么?
我正在尝试解析MySQL文档。他们可能会更清楚。他们似乎在说的是,有五种可能性:SET NULL,NO ACTION,RESTRICT,CASCADE和SET DEFAULT。 NO ACTION和RESTRICT会执行相同的操作(防止破坏FK的任何数据库更改),并且该操作是默认操作,因此,如果省略ON DELETE子句,则表示NO ACTION(或RESTRICT -是相同的操作)。 SET NULL允许删除父行,将FK设置为​​NULL。 CASCADE删除子行。 SET DEFAULT应该永远不被使用。 这或多或少是正确的吗?
71 mysql  innodb 

9
mysql服务器端口号
我刚刚在服务器上的mysql上建立了一个数据库。我想使用php通过我的网站连接到此。这是我的连接文件的内容: $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql'); $dbname = 'epub'; mysql_select_db($dbname); 我知道用户名/密码是什么,并且我知道服务器的IP地址。我只是想知道如何知道要使用哪个端口?

6
如何在MySQL中正确使用CASE..WHEN
这是一个演示查询,请注意,它非常简单,仅在base_price为0的地方获取,并且仍然选择条件3: SELECT CASE course_enrollment_settings.base_price WHEN course_enrollment_settings.base_price = 0 THEN 1 WHEN course_enrollment_settings.base_price<101 THEN 2 WHEN course_enrollment_settings.base_price>100 AND course_enrollment_settings.base_price<201 THEN 3 ELSE 6 END AS 'calc_base_price', course_enrollment_settings.base_price FROM course_enrollment_settings WHERE course_enrollment_settings.base_price = 0 base_price 是 decimal(8,0) 在数据库上运行此命令时,我得到: 3 0 3 0 3 0 3 0 3 0

7
Amazon RDS:将快照还原到现有实例
我已经创建了实例的快照,并在数据库中做了一些不需要的更改。 现在,我想从该快照还原我的实例。 当我尝试执行此操作时,除了我拥有的实例外,它还为我创建了另一个实例。 我指定“数据库实例标识符”,然后得到两个具有相同ID的实例。 所以我的问题是:有什么办法可以将快照还原到现有实例? 因为在其他情况下-使用不同的端点(主机名)创建了新实例,并且我需要更改配置以访问数据库。还是有更好的方法来处理此类案件?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.