Import CSV file to MySQL table / CAST conversions

To import CSV unicode file to MySQL table via phpmyadmin (csv fields are delimited with tabulations ) :

csv-mysql

More advanced options can be used at the shell level :

shell> cat /tmp/bit_test.txt
2
127
shell> mysql test
mysql> LOAD DATA INFILE '/tmp/bit_test.txt'
    -> INTO TABLE bit_test (@var1) SET b = CAST(@var1 AS UNSIGNED);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Deleted: 0  Skipped: 0  Warnings: 0

mysql> SELECT BIN(b+0) FROM bit_test;
+----------+
| bin(b+0) |
+----------+
| 10       |
| 1111111  |
+----------+
2 rows in set (0.00 sec)

CAST and STR_TO_DATE are useful conversions calls while using mysql transactions :

Sample 1 : STR_TO_DATE converting string (like : 12/10/1989) in real date for obtaining real sorting on dates :
SELECT * FROM perio JOIN bulletinage ON bulletinage.per_ref = perio.per_ref 
WHERE perio.per_ref = 'PER00000001' 
ORDER BY str_to_date( bulletinage.per_numero, '%d/%m/%Y' ) ASC;

Sample 2 : CAST converting num strings in unsigned for obtaining integer order sorting :
SELECT * FROM perio per,bulletinage expp  
WHERE per.per_ref = expp.per_ref and per.per_ref= 'per00000003' order by CAST(expp.isn As UNSIGNED)

To use STR_TO_DATE With codeIgniter we can use :

 public function get_expp_by_id($id)
    {
        $sql="SELECT * FROM perio JOIN bulletinage ON bulletinage.per_ref = perio.per_ref 
        WHERE perio.per_ref = '" . $id . "' ORDER BY str_to_date( bulletinage.per_numero, '%d/%m/%Y' ) ASC;";
        
        $query = $this->db->query($sql);
       return $query;
 }    

When Conversion do not pose escape problems in codeIgniter like CAST we can use Active record like that :

public function get_expp1_by_id($id)
    {
        $this->db->select('*');
        $this->db->from('perio');
        $this->db->join('bulletinage', 'bulletinage.per_ref = perio.per_ref');
        $this->db->where('perio.per_ref', $id);
        $this->db->order_by("CAST(bulletinage.isn As UNSIGNED)", "asc"); 
        $query = $this->db->get();
	return $query;   
    }    

extradrmtech

Since 20 years I work on Database Architecture and data migration protocols. I am also a consultant in Web content management solutions. I am an experienced web-developer with over 10 years developing PHP/MySQL, C#, VB.Net applications ranging from simple web sites to extensive web-based business applications. When not writing code, I like to dance salsa and swing and have fun with my little family.

You may also like...