MySQL - LOAD_FILE() Function



The MySQL LOAD_FILE() function accepts a string value representing the path of a file and reads its contents and returns them. The file path should be an absolute path, and the user running the query should have the necessary file system permissions to read the file. If we provide an image, it will return the output as blob.

Syntax

Following is the syntax of MySQL LOAD_FILE function −

LOAD_FILE(file_name)

Parameters

This function takes a file path as a parameter.

Return Value

This function returns the file content as a string.

Example

In the following example, we are using the LOAD_FILE() function to read the contents of a text file 'test.txt' from an absolute file path and return it as a hexadecimal string −

SELECT LOAD_FILE('MySQL_data_directory/test.txt') as Result;

Following is the output of the above code −

Result
0x5468697320697320612066696C6520776974682073616D706C652064617461

If you disable the --binary-as-hex setting, the result of the above query will return the actual text content of the file −

SELECT LOAD_FILE('MySQL_data_directory/test.txt') as Result;

The output obtained is as follows −

Result
This is a file with sample data

Example

If the file path passed to the LOAD_FILE() function does not exist, it returns NULL −

SELECT LOAD_FILE('UnknownPath/java.jpg');

We get the output as follows −

LOAD_FILE('UnknownPath/java.jpg')
NULL

Example

You can also pass a column name of a table as a parameter of this function and load the contents of a file as values of the specified column.

Assume we have created a table "Tutorials_table" using the CREATE statement and inserted records into it except the "Contents" column −

CREATE TABLE Tutorials_table (
   ID INT, 
   Title VARCHAR(20), 
   Contents LONGTEXT
);

Now, let us insert records into it using the INSERT statement −

INSERT INTO Tutorials_table (ID, Title) VALUES 
(1, 'Java'),
(2, 'JavaFX'),
(3, 'Coffee Script'),
(4, 'OpenCV');

Suppose we have 4 text files in the MySQL data directory i.e. C:\ProgramData\MySQL\MySQL Server 8.0\Uploads

java.txt:

Java is a high-level programming language originally developed by Sun Microsystems and released in 1995. Java runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX.

Javafx.txt:

JavaFX is a Java library used to build Rich Internet Applications. The applications written using this library can run consistently across multiple platforms. The applications developed using JavaFX can run on various devices such as Desktop Computers, Mobile Phones, TVs, Tablets, etc.

coffee.txt:

CoffeeScript is a light weight language which transcompiles into JavaScript. It provides better syntax avoiding the quirky parts of JavaScript, still retaining the flexibility and beauty of the language.

opencv.txt:

OpenCV is a cross-platform library using which we can develop real-time computer vision applications. It mainly focuses on image processing, video capture and analysis including features like face detection and object detection. 

Now, let's load the contents of above text file as values for the "Contents" column in the Tutorials_table −

UPDATE Tutorials_table SET Contents = LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/java.txt') WHERE ID=1;
UPDATE Tutorials_table SET Contents = LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/javafx.txt') WHERE ID=2;
UPDATE Tutorials_table SET Contents = LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/coffee.txt') WHERE ID=3;
UPDATE Tutorials_table SET Contents = LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/opencv.txt') WHERE ID=4;

You can verify the contents of the table using the following SELECT query −

SELECT * FROM Tutorials_table;

You can observe the inserted data as shown in the table obtained below −

ID Title Contents
1 Java Java is a high-level programming language originally developed by Sun Microsystems and released in 1995. Java runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX.
2 JavaFX JavaFX is a Java library used to build Rich Internet Applications. The applications written using this library can run consistently across multiple platforms. The applications developed using JavaFX can run on various devices such as Desktop Computers, Mobile Phones, TVs, Tablets, etc.
3 Coffee Script CoffeeScript is a light weight language which transcompiles into JavaScript. It provides better syntax avoiding the quirky parts of JavaScript, still retaining the flexibility and beauty of the language.
4 OpenCV OpenCV is a cross-platform library using which we can develop real-time computer vision applications. It mainly focuses on image processing, video capture and analysis including features like face detection and object detection.
mysql-load-file-function.htm
Advertisements