Node.js MySQL 从表中选取

从表中选取

要从 MySQL 中的表中选择数据,请使用 "SELECT" 语句。

实例

从 "customers" 表中选择所有记录,并显示结果对象:

  1. var mysql = require('mysql');
  2. var con = mysql.createConnection({
  3. host: "localhost",
  4. user: "yourusername",
  5. password: "yourpassword",
  6. database: "mydb"
  7. });
  8. con.connect(function(err) {
  9. if (err) throw err;
  10. con.query("<strong>SELECT * FROM customers</strong>", function (err, result, fields) {
  11. if (err) throw err;
  12. console.log(result);
  13. });
  14. });
SELECT * 将返回所有的列。

将上述代码保存在名为 "demo_db_select.js" 的文件中,然后运行该文件:

运行 "demo_db_select.js"

C:\Users\ Your Name >node demo_db_select.js

结果如下:

  1. [
  2. { id: 1, name: 'John', address: 'Highway 71'},
  3. { id: 2, name: 'Peter', address: 'Lowstreet 4'},
  4. { id: 3, name: 'Amy', address: 'Apple st 652'},
  5. { id: 4, name: 'Hannah', address: 'Mountain 21'},
  6. { id: 5, name: 'Michael', address: 'Valley 345'},
  7. { id: 6, name: 'Sandy', address: 'Ocean blvd 2'},
  8. { id: 7, name: 'Betty', address: 'Green Grass 1'},
  9. { id: 8, name: 'Richard', address: 'Sky st 331'},
  10. { id: 9, name: 'Susan', address: 'One way 98'},
  11. { id: 10, name: 'Vicky', address: 'Yellow Garden 2'},
  12. { id: 11, name: 'Ben', address: 'Park Lane 38'},
  13. { id: 12, name: 'William', address: 'Central st 954'},
  14. { id: 13, name: 'Chuck', address: 'Main Road 989'},
  15. { id: 14, name: 'Viola', address: 'Sideway 1633'}
  16. ]

选择列

要仅选择表中的某些列,请使用 "SELECT" 语句,后跟列名。

实例

从 "customers" 表中选择名称和地址,并显示返回对象:

  1. var mysql = require('mysql');
  2. var con = mysql.createConnection({
  3. host: "localhost",
  4. user: "yourusername",
  5. password: "yourpassword",
  6. database: "mydb"
  7. });
  8. con.connect(function(err) {
  9. if (err) throw err;
  10. con.query("<strong>SELECT name, address FROM customers</strong>", function (err, result, fields) {
  11. if (err) throw err;
  12. console.log(result);
  13. });
  14. });

将上述代码保存在名为 "demo_db_select2.js" 的文件中,然后运行该文件:

运行 "demo_db_select2.js"

C:\Users\ Your Name >node demo_db_select2.js

结果如下:

  1. [
  2. { name: 'John', address: 'Highway 71'},
  3. { name: 'Peter', address: 'Lowstreet 4'},
  4. { name: 'Amy', address: 'Apple st 652'},
  5. { name: 'Hannah', address: 'Mountain 21'},
  6. { name: 'Michael', address: 'Valley 345'},
  7. { name: 'Sandy', address: 'Ocean blvd 2'},
  8. { name: 'Betty', address: 'Green Grass 1'},
  9. { name: 'Richard', address: 'Sky st 331'},
  10. { name: 'Susan', address: 'One way 98'},
  11. { name: 'Vicky', address: 'Yellow Garden 2'},
  12. { name: 'Ben', address: 'Park Lane 38'},
  13. { name: 'William', address: 'Central st 954'},
  14. { name: 'Chuck', address: 'Main Road 989'},
  15. { name: 'Viola', address: 'Sideway 1633'}
  16. ]

结果对象

从上面示例的结果可以看出,result 结果对象是一个数组,包含作为对象的每一行。

要返回例如第三条记录的地址,只需参考第三个数组对象的 address 属性:

实例

返回第三条记录的地址:

console.log(result[2].address);

结果如下:

  1. Apple st 652

字段对象

回调函数的第三个参数是一个数组,其中包含有关结果中每个字段的信息。

实例

从 "customers" 表中选择所有记录,并显示 字段 对象:

  1. var mysql = require('mysql');
  2. var con = mysql.createConnection({
  3. host: "localhost",
  4. user: "yourusername",
  5. password: "yourpassword",
  6. database: "mydb"
  7. });
  8. con.connect(function(err) {
  9. if (err) throw err;
  10. con.query("SELECT name, address FROM customers", function (err, result, <strong>fields</strong>) {
  11. if (err) throw err;
  12. console.log(<strong>fields</strong>);
  13. });
  14. });

将上述代码保存在名为 "demo_db_select_fields.js" 的文件中,然后运行该文件:

运行 "demo_db_select_fields.js"

C:\Users\ Your Name >node demo_db_select_fields.js

结果如下:

  1. [
  2. {
  3. catalog: 'def',
  4. db: 'mydb',
  5. table: 'customers',
  6. orgTable: 'customers',
  7. name: 'name',
  8. orgName: 'name',
  9. charsetNr: 33,
  10. length: 765,
  11. type: 253,
  12. flags: 0,
  13. decimals: 0,
  14. default: undefined,
  15. zeroFill: false,
  16. protocol41: true
  17. },
  18. {
  19. catalog: 'def',
  20. db: 'mydb',
  21. table: 'customers',
  22. orgTable: 'customers',
  23. name: 'address',
  24. orgName: 'address',
  25. charsetNr: 33,
  26. length: 765,
  27. type: 253,
  28. flags: 0,
  29. decimals: 0,
  30. default: undefined,
  31. zeroFill: false,
  32. protocol41: true
  33. }
  34. ]

从上面示例的结果可以看出,fields 对象是一个数组,其中包含每个字段作为对象的信息。

要返回第二个字段的名称,只需参考第二个数组项的 name 属性:

实例

返回第二个字段的名称:

console.log(fields[1].name);

结果如下:

  1. address

分类导航