Hướng dẫn xóa các dữ liệu trùng lặp trong MySQL

Trong bài viết này sẽ hướng dẫn bạn các cách để xóa dữ liệu trùng lặp trong MySQL. Ở bài viết trước, chúng ta đã biết cách tìm ra các dữ liệu trùng lặp. Và khi đã tìm được dữ liệu trùng lặp thì chúng ta sẽ xóa chúng đi để làm sạch database. Chuẩn…

Hướng dẫn tìm các bản ghi trùng lặp trong MySQL

Bài viết này sẽ hướng dẫn bạn cách tìm các dữ liệu trùng lặp trong 1 hoặc nhiều cột. Mở đầu Trùng lặp dữ liệu xảy ra rất nhiều trong database với nhiều lý do khác nhau. Việc tìm ra dữ liệu trùng lặp là 1 nhiệm vụ quan trọng mà bạn phải đối mặt…

So sánh hai bảng trong MySQL

Bài viết này sẽ hướng dẫn bạn so sánh 2 bảng để tìm ra các bản ghi khác nhau. Trong data migration chúng ta thường so sánh 2 bảng để tìm ra các bản ghi không khớp nhau. Ví dụ, chúng ta có 1 database mới với schema khác với database cũ. Nhiệm vụ là…

Hướng dẫn đếm số bản ghi trong MySQL

Bài viết này sẽ hướng dẫn nhiều cách khác nhau để lấy số lượng bản ghi trong database. Đếm số bản ghi trong 1 bảng Trong MySQL để đếm số bản ghi trong 1 bảng ta dùng lệnh: SELECT COUNT(*) FROM table_name; Ví dụ, lấy số bản ghi của bảng customers trong sample database: SELECT…

Serials Javascript Style Guide – Properties

Properties 12.1 Dot Luôn sử dụng kí hiệu dấu chấm . để truy xuất các thuộc tính. eslint: dot-notation const luke = { jedi: true, age: 28, }; // bad const isJedi = luke['jedi']; // good const isJedi = luke.jedi; 12.2 Bracket Sử dụng kí hiệu dấu ngoặc vuông [] khi truy xuất thuộc tính…

Serials Javascript Style Guide – Iterators and Generators

Iterators and Generators 11.1 Nope Không sử dụng các vòng lặp. Khuyến khích sử dụng các higher-order functions thay vì các vòng lặp như for-in or for-of. eslint: no-iterator no-restricted-syntax Tại sao ư? Hãy hiểu đây là quy tắc bất di bất dịch. Vì việc hàm thuần túy trả về giá trị luôn dễ hơn…

Serials Javascript Style Guide – Modules

Modules 10.1 Use them Luôn sử dụng module (import/export). Tại sao ư? Modules là tương lại vì vậy hãy bắt đầu sử dụng ngay bây giờ. // bad const AirbnbStyleGuide = require('./AirbnbStyleGuide'); module.exports = AirbnbStyleGuide.es6; // ok import AirbnbStyleGuide from './AirbnbStyleGuide'; export default AirbnbStyleGuide.es6; // best import { es6 } from './AirbnbStyleGuide'; export default es6;…

Thay đổi timezone trong Linux sử dụng command line

Có nhiều cách khác nhau để quản lý time trong Linux. Trong bài viết này sẽ hướng dẫn bạn cách thay đổi localtime sang timezone chính xác cho server. Vị trí file localtime File /ect/localtime xác định time hiện tại của server. File này có thể là liên kết hoặc là bản copy từ file…

Serials Javascript Style Guide – Classes & Constructors

Classes & Constructors 9.1 Use class Luôn sử dụng class. Tránh thao tác trực tiếp prototype. Tại sao ư? class ngắn gọn và dễ hiểu hơn. // bad function Queue(contents = []) { this.queue = […contents]; } Queue.prototype.pop = function () { const value = this.queue[0]; this.queue.splice(0, 1); return value; }; // good class Queue…

Serials Javascript Style Guide – Arrow Functions

Arrow Functions 8.1 Use them Nếu thực sự phải dùng hàm vô danh (như khi truyền vào 1 callback), thì sử dụng hàm mũi tên. eslint: prefer-arrow-callback, arrow-spacing Tại sao ư? Vì nó tạo ra 1 phiên bản của hàm thực thi trong ngữ cảnh của this, thường là những gì bạn muốn và là…