Use of fetchOne() method in sql query Magento 2.

You can run a direct SQL query for fetching only first value using fetchOne() method.

fetchOne() Fetches the first column of the first row of the SQL result as output.

You can use direct SQL query for the fetch the first column of the first row using below way, Get Product id by Product SKU,

<?php
class UpdateQuery {
   public function __construct(
       \Magento\Framework\App\ResourceConnection $resource
   ) {
       $this->resource = $resource;
   }

   /**
    * Update Sql Query
    */
   public function runUpdateQuery()
   {
      $connection  = $this->resource->getConnection();
      $tableName = $connection->getTableName("catalog_product_entity");
      
      $select = $connection->select()->from($tableName, 'entity_id')->where('sku = :sku');
      $sku = "24-MB01";
      $bind = [':sku' => (string)$sku];

      return (int)$connection->fetchOne($select, $bind);
  }
}

Output is 1. //entity_id for SKU 24-MB01

Check for other Direct SQL Query in Magento 2

How to write Mysql Update database query using Magento 2?

Run Update SQL query in a given database table by Magento 2 in a standard way without the use of Object Manager.

You can write an update MySQL query in the ResouceModel PHP class.

When you write any custom update query, You need to create a function in the ResourceModel folder PHP file.
Continue reading “How to write Mysql Update database query using Magento 2?”

How to add new field in customer_entity table magento 2 using db_schema.xml?

You can add a new column/field in customer_entity table using db_schema.xml under your module etc folder from Magento 2.3 and Upper version.

You just need your table name to add a new field or column for that table.

I have added a new field called Nickname of the customer, For add nickname field in the customer table, you need to only add one row inside the db_schema.xml file. Continue reading “How to add new field in customer_entity table magento 2 using db_schema.xml?”